Upgrade in progress + bug to fix -> error with AuthSystem

This commit is contained in:
xdrm-brackets 2017-01-30 19:59:06 +01:00
parent 812416a566
commit 98cf39dd37
12 changed files with 61 additions and 54 deletions

View File

@ -10,7 +10,7 @@
class Authentification implements AuthSystem{
class AuthSystemDefault implements AuthSystem{
public function __construct(){
self::check();

View File

@ -23,6 +23,7 @@
private $params;
private $modules;
private $options;
private $http_method;
// Contiendra la reponse a la requete
public $answer;
@ -87,7 +88,7 @@
$params = (is_array($params)) ? $params : [];
/* (3) On définit en constante la méthode HTTP */
define('__HTTP_METHOD__', strtoupper($_SERVER['REQUEST_METHOD']));
$this->http_method = strtoupper($_SERVER['REQUEST_METHOD']);
/* [5] Verification du chemin (existence module+methode)
@ -113,9 +114,10 @@
$this->buildOptions();
/* [9] Construction de l'objet
/* [9] Construction de l'objet (add http method to params)
=========================================================*/
$this->params = $params;
$this->params['HTTP_METHOD'] = $this->http_method;
$this->error->set(Err::Success);
return true; // On retourne que tout s'est bien passe
@ -135,7 +137,7 @@
/* (1) Check instance type */
if( !($instance instanceof AuthSystem) )
return false;
/* (2) Store instance */
self::$authsystem = $instance;
}
@ -407,7 +409,7 @@
// On recupere les données de la regex
$module = $matches[1];
$method = __HTTP_METHOD__.'::'.$matches[2];
$method = $this->http_method.'::'.$matches[2];
/* [2] Verification de l'existence du module (conf)
@ -458,10 +460,17 @@
return true;
/* [2] Vérification des permissions et de l'authentification
=========================================================*/
$granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] );
var_dump(self::$authsystem);
die('error line 466');
// if no AuthSystem set up, deny by default
//if( !self::$authsystem instanceof AuthSystem )
// return false;
// Check permission using user-implemented AuthSystem
$granted = self::$authsystem::permission();
//$granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] );
/* (1) On retourne FAUX si aucun droit n'a ete trouve */
if( $granted->get() !== Err::Success ){

View File

@ -37,7 +37,7 @@
// Si une erreur est retournee, on retourne une erreur
if( $id_cluster === false )
return ['ModuleError' => new Error(Err::ModuleError)];
return ['error' => new Error(Err::error)];
/* [5] Gestion du retour
@ -160,7 +160,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'cluster' => $answer ];
@ -192,7 +192,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'cluster' => $answer ];
@ -224,7 +224,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'members' => $answer ];
@ -259,7 +259,7 @@
// Si on a recupere aucun utilisateur, on retourne une erreur
if( $cluster_data === false )
return ['ModuleError' => new Error(Err::NoMatchFound)];
return ['error' => new Error(Err::NoMatchFound)];
@ -338,7 +338,7 @@
/* [2] On propage l'erreur retournée
=========================================================*/
return [ 'ModuleError' => $res ];
return [ 'error' => $res ];
}
/* SUPPRIME UNE PERMISSION
@ -362,7 +362,7 @@
/* [2] On propage l'erreur retournée
=========================================================*/
return [ 'ModuleError' => $res ];
return [ 'error' => $res ];
}
@ -386,7 +386,7 @@
// Gestion erreur
if( !is_array($res) )
return ['ModuleError' => new Error(Err::NoMatchFound)];
return ['error' => new Error(Err::NoMatchFound)];
/* (3) On retourne le résultat */
return [ 'permissions' => $res ];
@ -412,7 +412,7 @@
// error
if( !is_array($res) )
return ['ModuleError' => new Error(Err::NoMatchFound)];
return ['error' => new Error(Err::NoMatchFound)];
return ['clusters' => $res];
}

View File

@ -37,7 +37,7 @@
// Si une erreur est retournee, on retourne une erreur
if( $id_entry === false )
return ['ModuleError' => new Error(Err::ModuleError)];
return ['error' => new Error(Err::error)];
/* [2] Gestion du retour

View File

@ -4,8 +4,8 @@
use \database\core\DatabaseDriver;
use \manager\sessionManager;
use \error\core\Error;
use \error\core\Err;
use \database\core\Repo;
use \manager\repo\cluster as clusterRepo;
class machineDefault{
@ -33,7 +33,7 @@
// Si une erreur est retournee, on retourne une erreur
if( $id_machine === false )
return ['ModuleError' => new Error(Err::ModuleError)];
return ['error' => new Error(Err::error)];
@ -68,7 +68,7 @@
]);
/* (1) On retourne l'erreur du repo */
return [ 'ModuleError' => $link_machine->answer() ];
return [ 'error' => $link_machine->answer() ];
}
@ -95,7 +95,7 @@
]);
/* (1) On retourne l'erreur du repo */
return [ 'ModuleError' => $link_machine->answer() ];
return [ 'error' => $link_machine->answer() ];
}
@ -160,7 +160,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'machine' => $answer ];
@ -190,7 +190,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'machine' => $answer ];
@ -219,7 +219,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'clusters' => $answer ];
@ -251,7 +251,7 @@
// Si on a recupere aucune machine, on retourne une erreur
if( !is_array($machine_data) )
return ['ModuleError' => new Error(Err::NoMatchFound)];
return ['error' => new Error(Err::NoMatchFound)];
@ -471,7 +471,7 @@
// Si token incorrect, on envoie une erreur
if( $checkToken->answer() !== true )
return [ 'ModuleError' => new Error(Err::TokenError) ];
return [ 'error' => new Error(Err::TokenError) ];

View File

@ -16,7 +16,7 @@
public function method($params){
return [
'ModuleError' => new Error(Err::Success),
'error' => new Error(Err::Success),
'ReceivedArguments' => $params
];
@ -35,7 +35,7 @@
// Gestion de l'erreur de parsage
if( $modules == null )
return [ 'ModuleError' => new Error(Err::ParsingFailed) ];
return [ 'error' => new Error(Err::ParsingFailed) ];
/* [2] Mise en forme de la liste des modules
=========================================================*/
@ -65,7 +65,7 @@
/* [n] Gestion du retour
=========================================================*/
return [
'ModuleError' => new Error(Err::Success),
'error' => new Error(Err::Success),
'headers' => [
'Content-Type' => 'text/markdown; charset=utf-8',
'Content-Transfer-Encoding' => 'binary',
@ -91,7 +91,7 @@
// Gestion de l'erreur de parsage
if( $modules == null )
return [ 'ModuleError' => new Error(Err::ParsingFailed) ];
return [ 'error' => new Error(Err::ParsingFailed) ];
/* [1] Début du fichier custom
@ -125,7 +125,7 @@
$content .= "#### A. Les réponses seront formattées en json et contiendront:\n\n";
$content .= "1. `ModuleError` - Le code de l'erreur \n";
$content .= "1. `error` - Le code de l'erreur \n";
$content .= "2. `ErrorDescription` - La description de l'erreur\n\n";
$content .= "****\n\n";
@ -263,7 +263,7 @@
return [
'ModuleError' => new Error(Err::Success),
'error' => new Error(Err::Success),
'headers' => [
'Content-Type' => 'application/octet-stream; charset=utf-8',
'Content-Transfer-Encoding' => 'binary',

View File

@ -39,7 +39,7 @@
// Si une erreur est retournee, on retourne une erreur
if( $id_user === false )
return ['ModuleError' => new Error(Err::ModuleError)];
return ['error' => new Error(Err::error)];
/* [2] Gestion du retour
@ -74,7 +74,7 @@
]);
/* (1) On retourne l'erreur du repo */
return [ 'ModuleError' => $link_user->answer() ];
return [ 'error' => $link_user->answer() ];
}
@ -102,7 +102,7 @@
]);
/* (1) On retourne l'erreur du repo */
return [ 'ModuleError' => $link_user->answer() ];
return [ 'error' => $link_user->answer() ];
}
@ -167,7 +167,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'user' => $answer ];
@ -196,7 +196,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'user' => $answer ];
@ -226,7 +226,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'user' => $answer ];
@ -256,7 +256,7 @@
// Si aucun resultat, on retourne une erreur
if( $answer === false )
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
return [ 'error' => new Error(Err::NoMatchFound) ];
return [ 'clusters' => $answer ];
@ -291,7 +291,7 @@
// Si on a recupere aucun utilisateur, on retourne une erreur
if( !is_array($user_data) )
return ['ModuleError' => new Error(Err::NoMatchFound)];
return ['error' => new Error(Err::NoMatchFound)];

View File

@ -106,7 +106,7 @@
public function answer(){
if( $this->error != new Error(Err::Success) )
if( $this->error->get() != Err::Success )
return false;
return $this->answer;
@ -122,7 +122,7 @@
public function dispatch(){
/* [1] On verifie qu'aucune erreur n'a ete signalee
=========================================================*/
if( $this->error != new Error(Err::Success) ) // si il y a une erreur
if( $this->error->get() != Err::Success ) // si il y a une erreur
return false; // on la passe a la reponse

View File

@ -32,6 +32,7 @@
$twig->addFunction(new \Twig_Function('f_machines', function(){
$request = new Request('machineDefault/getAll'); // On utilise la methode 'getAll' du module 'machineDefault'
$answer = $request->dispatch(); // On recupere la reponse
//
// si erreur, on affiche rien par défaut
if( $answer->error->get() != Err::Success )
return [];
@ -40,17 +41,18 @@
}));
$twig->addFunction(new \Twig_Function('f_clusters', function($id_machine){
$clustersReq = new Request('machineDefault/getClusters', [
$request = new Request('machineDefault/getClusters', [
'id_machine' => (int) $id_machine
]);
var_dump('r2 - machine/view.php:47', $request->error->get());
$clustersRes = $clustersReq->dispatch();
$answer = $request->dispatch();
// si erreur, on affiche rien par défaut
if( $clustersRes->error->get() != Err::Success )
if( $answer->error->get() != Err::Success )
return [];
return $clustersRes->get('clusters');
return $answer->get('clusters');
}));

View File

@ -3,7 +3,7 @@
"module": {
"POST::method": {
"description": "Test de l'API",
"permissions": [],
"permissions": ["warehouse"],
"parameters": {}
},

View File

@ -2,12 +2,11 @@
require_once '../autoloader.php';
debug();
use \router\core\Router;
use \api\core\Request;
use \api\core\Response;
use \database\core\DatabaseDriver;
use \api\core\Authentification;
use \api\core\AuthSystemDefault;
@ -24,10 +23,9 @@
/* [1] Gestion des authentifications et des droits
=========================================================*/
/* (1) On met à jour l'authentification et les permissions */
$authsys = new Authentification();
$auth = $authsys::auth();
$auth = AuthSystemDefault::auth();
Request::setAuthSystem($authsys);
Request::setAuthSystem(new AuthSystemDefault);
/* (2) On définit la page d'accueil */

View File

@ -1,8 +1,6 @@
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
require_once __ROOT__.'/autoloader.php';
use \viewer\core\Viewer;
use \api\core\Request;
use \database\core\Repo;
?>
<!-- [1] Gestion du sous-menu de gauche -->