Upgraded to Error:2.0 + api:2.2
This commit is contained in:
parent
6a483425ae
commit
812416a566
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace api\core;
|
||||||
|
|
||||||
|
use \error\core\Err;
|
||||||
|
use \error\core\Error;
|
||||||
|
|
||||||
|
interface AuthSystem{
|
||||||
|
|
||||||
|
/* VERIFICATION DES ACCES EN FONCTION DE PERMISSIONS ATTENDUES
|
||||||
|
*
|
||||||
|
* @module<String> Module concerné
|
||||||
|
* @expected<array> Liste des permissions attendues
|
||||||
|
*
|
||||||
|
* @return error<Error> Erreur associée à la permission (Success/PermissionError/TokenError/etc)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function permission($module, $expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -4,15 +4,17 @@
|
||||||
|
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
use \api\core\AuthSystem;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Authentification{
|
class Authentification implements AuthSystem{
|
||||||
|
|
||||||
// Contiendra les erreurs
|
|
||||||
public $error;
|
|
||||||
|
|
||||||
|
public function __construct(){
|
||||||
|
self::check();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,7 +135,7 @@
|
||||||
* @module<String> Module concerné
|
* @module<String> Module concerné
|
||||||
* @expected<array> Liste des permissions attendues
|
* @expected<array> Liste des permissions attendues
|
||||||
*
|
*
|
||||||
* @return status<Boolean> Si FALSE, pas la permission, sinon si
|
* @return error<Error> Si FALSE, pas la permission, sinon si
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function permission($module, $expected){
|
public static function permission($module, $expected){
|
||||||
|
@ -148,12 +150,12 @@
|
||||||
/* (1) Si entrepot requis, mais manquant
|
/* (1) Si entrepot requis, mais manquant
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
if( in_array('warehouse', $expected) && self::auth() < 1 )
|
if( in_array('warehouse', $expected) && self::auth() < 1 )
|
||||||
return Error::PermissionError;
|
return new Error(Err::PermissionError);
|
||||||
|
|
||||||
/* (2) Si admin requis, mais manquant
|
/* (2) Si admin requis, mais manquant
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
if( in_array('admin', $expected) && self::auth() < 2 )
|
if( in_array('admin', $expected) && self::auth() < 2 )
|
||||||
return Error::PermissionError;
|
return new Error(Err::PermissionError);
|
||||||
|
|
||||||
/* (3) On retire 'warehouse' et 'admin' de @expected
|
/* (3) On retire 'warehouse' et 'admin' de @expected
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
|
@ -169,7 +171,7 @@
|
||||||
foreach($expected as $permission)
|
foreach($expected as $permission)
|
||||||
// Si il manque au minimum une permission, on retourne FALSE
|
// Si il manque au minimum une permission, on retourne FALSE
|
||||||
if( !in_array($permission, $_SESSION['PERM']) )
|
if( !in_array($permission, $_SESSION['PERM']) )
|
||||||
return Error::PermissionError;
|
return new Error(Err::PermissionError);
|
||||||
|
|
||||||
|
|
||||||
/* [3] Vérification que le module est actif pour l'entrepot
|
/* [3] Vérification que le module est actif pour l'entrepot
|
||||||
|
@ -185,12 +187,12 @@
|
||||||
|
|
||||||
/* (3) Si aucune autorisation et pas module "Default" */
|
/* (3) Si aucune autorisation et pas module "Default" */
|
||||||
if( !$allowedModule && !$defaultModule )
|
if( !$allowedModule && !$defaultModule )
|
||||||
return Error::DisabledModule;
|
return new Error(Err::DisabledModule);
|
||||||
|
|
||||||
|
|
||||||
/* [4] Si on a toutes les permissions requises
|
/* [4] Si on a toutes les permissions requises
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return Error::Success;
|
return new Error(Err::Success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,11 +81,6 @@
|
||||||
return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
|
return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Code RFID
|
|
||||||
case 'rfid':
|
|
||||||
return $checker && is_string($value) && preg_match('/^[\dA-F]{2}(\-[\dA-F]{2}){3,5}$/i', $value);
|
|
||||||
break;
|
|
||||||
|
|
||||||
// String quelconque (peut etre vide)
|
// String quelconque (peut etre vide)
|
||||||
case 'text':
|
case 'text':
|
||||||
return $checker && is_string($value);
|
return $checker && is_string($value);
|
||||||
|
@ -132,6 +127,10 @@
|
||||||
return $checker && is_string($value) && json_decode($value, true) !== NULL;
|
return $checker && is_string($value) && json_decode($value, true) !== NULL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'numeric':
|
||||||
|
return $checker && (is_numeric($value) || $value == null || $value == 'null');
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace api\core;
|
||||||
|
|
||||||
|
|
||||||
|
class ModuleFactory{
|
||||||
|
|
||||||
|
/* INSTANCIE UN MODULE
|
||||||
|
*
|
||||||
|
* @module<String> Nom du module
|
||||||
|
* @arguments<Array> [OPTIONNEL] Arguments à passer au constructeur
|
||||||
|
*
|
||||||
|
* @return instance<Module> Instance du module en question
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function getModule($module, $arguments=[]){
|
||||||
|
/* (1) On gère les arguments */
|
||||||
|
$arguments = is_array($arguments) ? $arguments : [];
|
||||||
|
|
||||||
|
/* (1) On vérifie que la classe existe */
|
||||||
|
if( !file_exists(__BUILD__."/api/module/$module.php") )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* (2) On récupère la classe */
|
||||||
|
$class_name = "\\api\\module\\$module";
|
||||||
|
|
||||||
|
/* (3) On retourne une instance */
|
||||||
|
return new $class_name($arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,17 +2,21 @@
|
||||||
|
|
||||||
namespace api\core;
|
namespace api\core;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \api\core\Authentification;
|
use \api\core\AuthSystem;
|
||||||
|
use \api\core\ModuleFactory;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
use \http\core\HttpRequest;
|
||||||
|
|
||||||
|
|
||||||
class ModuleRequest{
|
class Request{
|
||||||
|
|
||||||
// Constantes
|
// Constantes
|
||||||
public static function config_path(){ return __ROOT__.'/config/modules.json'; }
|
private static function config_path(){ return __ROOT__.'/config/modules.json'; }
|
||||||
public static $default_options = [
|
private static $default_options = [
|
||||||
'download' => false
|
'download' => false
|
||||||
];
|
];
|
||||||
|
private static $authsystem = null;
|
||||||
|
|
||||||
// Attributs prives utiles (initialisation)
|
// Attributs prives utiles (initialisation)
|
||||||
private $path;
|
private $path;
|
||||||
|
@ -39,66 +43,80 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct($path=null, $params=null){
|
public function __construct($path=null, $params=null){
|
||||||
// Si pas parametre manquant, on quitte
|
/* [1] Fetch HttpRequest correct data
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Parse HttpRequest data because php doesn't parse it for non-POST HTTP method */
|
||||||
|
$httprequest = new HttpRequest();
|
||||||
|
$_POST = $httprequest->POST();
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Initialisation
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Erreur par défaut */
|
||||||
|
$this->error = new Error(Err::Success);
|
||||||
|
|
||||||
|
/* (2) Si pas parametre manquant, on quitte */
|
||||||
if( $path == null ){
|
if( $path == null ){
|
||||||
$this->error = Error::MissingPath;
|
$this->error->set(Err::MissingPath);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* [0] On met a jour la configuration
|
|
||||||
|
/* [3] On met a jour la configuration
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Modules specifies
|
/* (1) Section Title */
|
||||||
$this->modules = json_decode( file_get_contents(self::config_path()), true );
|
$this->modules = json_decode( file_get_contents(self::config_path()), true );
|
||||||
|
|
||||||
// Gestion de l'erreur de parsage
|
/* (2) Gestion de l'erreur de parsage */
|
||||||
if( $this->modules == null ){
|
if( $this->modules == null ){
|
||||||
$this->error = Error::ParsingFailed;
|
$this->error->set(Err::ParsingFailed, 'json');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [1] Verification des types des parametres
|
/* [4] Verification des types des parametres
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Type de @path
|
/* (1) Section Title */
|
||||||
if( !is_string($path) ){ // Si le type est incorrect
|
if( !is_string($path) ){ // Si le type est incorrect
|
||||||
$this->error = Error::WrongPathModule;
|
$this->error->set(Err::WrongPathModule);
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type de @data (optionnel)
|
/* (2) Section Title */
|
||||||
$params = (is_array($params)) ? $params : [];
|
$params = (is_array($params)) ? $params : [];
|
||||||
|
|
||||||
|
/* (3) On définit en constante la méthode HTTP */
|
||||||
|
define('__HTTP_METHOD__', strtoupper($_SERVER['REQUEST_METHOD']));
|
||||||
|
|
||||||
/* [2] Verification du chemin (existence module+methode)
|
|
||||||
|
/* [5] Verification du chemin (existence module+methode)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution
|
if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
/* [6] Verification des droits
|
||||||
/* [3] Verification des droits
|
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !$this->checkPermission() ) // Si on a pas les droits
|
if( !$this->checkPermission() ) // Si on a pas les droits
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
/* [4] Verification des parametres (si @type est defini)
|
/* [7] Verification des parametres (si @type est defini)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !$this->checkParams($params) ){ // Verification de tous les types
|
if( !$this->checkParams($params) ) // Verification de tous les types
|
||||||
$this->error = Error::ParamError;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
/* [5] Récupèration des options
|
|
||||||
|
/* [8] Récupèration des options
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$this->buildOptions();
|
$this->buildOptions();
|
||||||
|
|
||||||
|
|
||||||
/* [6] Construction de l'objet
|
/* [9] Construction de l'objet
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$this->params = $params;
|
$this->params = $params;
|
||||||
$this->error = Error::Success;
|
$this->error->set(Err::Success);
|
||||||
|
|
||||||
return true; // On retourne que tout s'est bien passe
|
return true; // On retourne que tout s'est bien passe
|
||||||
|
|
||||||
|
@ -106,9 +124,27 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* DEFINIT LE SYSTEME D'AUTHENTIFICATION
|
||||||
|
*
|
||||||
|
* @instance<AuthSystem> Instance de type AuthSystem
|
||||||
|
*
|
||||||
|
* @return success<Boolean> Whether the AuthSystem is valid or not
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function setAuthSystem($instance=null){
|
||||||
|
/* (1) Check instance type */
|
||||||
|
if( !($instance instanceof AuthSystem) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* (2) Store instance */
|
||||||
|
self::$authsystem = $instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE
|
/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE
|
||||||
*
|
*
|
||||||
* @return answer<ModuleResponse> Retourne une reponse de type <ModuleResponse> si tout s'est bien passe
|
* @return answer<Response> Retourne une reponse de type <Response> si tout s'est bien passe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function dispatch(){
|
public function dispatch(){
|
||||||
|
@ -119,84 +155,108 @@
|
||||||
|
|
||||||
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( $this->error != Error::Success ) // si il y a une erreur
|
if( $this->error->get() !== Err::Success ) // si il y a une erreur
|
||||||
return new ModuleResponse($this->error); // on la passe a la reponse
|
return new Response($this->error); // on la passe a la reponse
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que la methode est amorcable
|
/* [2] On essaie d'instancier le module
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !is_callable($this->getFunctionCaller()) ){
|
$instance = ModuleFactory::getModule($this->path['module']);
|
||||||
$this->error = Error::UncallableMethod;
|
|
||||||
return new ModuleResponse($this->error);
|
if( $instance === false ){
|
||||||
|
$this->error->set(Err::UncallableModule, $this->path['module']);
|
||||||
|
return new Response($this->error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* [3] On verifie que la methode est amorcable
|
||||||
|
=========================================================*/
|
||||||
|
if( !is_callable([$instance, $this->getModuleMethod()]) ){
|
||||||
|
$this->error->set(Err::UncallableMethod, preg_replace('/\w+::/i', '', $this->path['method']) );
|
||||||
|
return new Response($this->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* [3] On amorce la methode
|
/* [4] On amorce la methode
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$returned = call_user_func( $this->getFunctionCaller(), $this->params );
|
/* (1) On lance la fonction */
|
||||||
|
$returned = call_user_func( [$instance, $this->getModuleMethod()], $this->params );
|
||||||
|
|
||||||
|
/* (2) On appelle le destructeur (si défini) */
|
||||||
|
$instance = null;
|
||||||
|
|
||||||
|
|
||||||
/* [4] Gestion de la reponse
|
/* [5] Gestion de la reponse
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$response = new ModuleResponse($this->error);
|
/* (1) On construit la réponse avec l'erreur */
|
||||||
|
$response = new Response($this->error);
|
||||||
|
|
||||||
|
/* (2) On ajoute les données */
|
||||||
$response->appendAll($returned);
|
$response->appendAll($returned);
|
||||||
|
|
||||||
|
// On retourne la réponse
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* EXECUTE LE TRAITEMENT ASSOCIE ET RENVOIE UN FICHIER AVEC LE HEADER ET LE BODY SPECIFIE
|
/* EXECUTE LE TRAITEMENT ASSOCIE ET RENVOIE UN FICHIER AVEC LE HEADER ET LE BODY SPECIFIE
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function download(){
|
public function download(){
|
||||||
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( $this->error != Error::Success ) // si il y a une erreur
|
if( $this->error->get() !== Err::Success ) // si il y a une erreur
|
||||||
return new ModuleResponse($this->error); // on la passe a la reponse
|
return new Response($this->error); // on la passe a la reponse
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que la methode est amorcable
|
/* [2] On essaie d'instancier le module
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !is_callable($this->getFunctionCaller()) ){
|
$instance = ModuleFactory::getModule($this->path['module']);
|
||||||
$this->error = Error::UncallableMethod;
|
|
||||||
return new ModuleResponse($this->error);
|
if( $instance === false ){
|
||||||
|
$this->error->set(Err::UncallableModule);
|
||||||
|
return new Response($this->error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* [3] On verifie que la methode est amorcable
|
||||||
|
=========================================================*/
|
||||||
|
if( !is_callable([$instance, $this->getModuleMethod()]) ){
|
||||||
|
$this->error->set(Err::UncallableMethod);
|
||||||
|
return new Response($this->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* [3] On amorce la methode
|
/* [4] On amorce la methode
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$returned = call_user_func( $this->getFunctionCaller(), $this->params );
|
/* (1) On lance la fonction */
|
||||||
|
$returned = call_user_func( [$instance, $this->getModuleMethod()], $this->params );
|
||||||
|
|
||||||
|
/* (2) On appelle le destructeur (si défini) */
|
||||||
|
$instance = null;
|
||||||
|
|
||||||
|
|
||||||
/* [4] Vérification des erreurs et paramètres
|
/* [5] Vérification des erreurs et paramètres
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Vérification de l'erreur retournée, si pas Success, on retourne l'erreur */
|
/* (1) Vérification de l'erreur retournée, si pas Success, on retourne l'erreur */
|
||||||
if( isset($returned['ModuleError']) && $returned['ModuleError'] != Error::Success ){
|
if( isset($returned['error']) && $returned['error'] instanceof Error && $returned['error']->get() != Err::Success ){
|
||||||
$this->error = $returned['ModuleError'];
|
$this->error = $returned['error'];
|
||||||
return new ModuleResponse($this->error);
|
return new Response($this->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (2) Vérification du contenu, si pas défini */
|
/* (2) Vérification du contenu, si pas défini */
|
||||||
if( !isset($returned['body']) ){
|
if( !isset($returned['body']) ){
|
||||||
$this->error = Error::ParamError;
|
$this->error->set(Err::ParamError);
|
||||||
return new ModuleResponse($this->error);
|
return new Response($this->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (3) Si @headers n'est pas défini on met par défaut */
|
/* (3) Si @headers n'est pas défini on met par défaut */
|
||||||
if( !isset($returned['headers']) || !is_array($returned['headers']) )
|
if( !isset($returned['headers']) || !is_array($returned['headers']) )
|
||||||
$returned['headers'] = [];
|
$returned['headers'] = [];
|
||||||
|
|
||||||
|
|
||||||
$fromAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
|
$fromAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
|
||||||
|
|
||||||
/* [5] Si la requête vient d'ajax on crée un fichier temporaire et on renvoie son URL
|
|
||||||
|
/* [6.1] Si requête ajax on crée un fichier temporaire et on renvoie son URL
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( $fromAjax ){
|
if( $fromAjax ){
|
||||||
|
|
||||||
|
@ -233,12 +293,12 @@
|
||||||
fclose($tmpfile);
|
fclose($tmpfile);
|
||||||
chmod($tmpfnameroot, 0775);
|
chmod($tmpfnameroot, 0775);
|
||||||
|
|
||||||
$response = new ModuleResponse(Error::Success);
|
$response = new Response($this->error);
|
||||||
$response->append('link', $tmpfname);
|
$response->append('link', $tmpfname);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
|
||||||
/* [6] Gestion du download direct si pas AJAX
|
/* [6.2] Gestion du download direct si pas AJAX
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
}else{
|
}else{
|
||||||
/* (1) On définit les headers */
|
/* (1) On définit les headers */
|
||||||
|
@ -253,53 +313,77 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* DESERIALISATION A PARTIR DES DONNEES POST
|
/* DESERIALISATION A PARTIR DE L'URL ET DES DONNEES POST (OPT)
|
||||||
*
|
*
|
||||||
* @url<String> Contenu de l'url après api/ (si existe)
|
* @url<String> Contenu de l'url formatté (commence à "/module/methode")
|
||||||
* @post<Array> Tableau des donnes $_POST => @path + @data (opt)
|
* @post<Array> [opt] Tableau des donnes
|
||||||
*
|
*
|
||||||
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest>
|
* @return instance<Request> Retourne un objet de type <Request>
|
||||||
|
*
|
||||||
|
* @note
|
||||||
|
* 1. `path` peut être dans l'url : /method/module
|
||||||
|
* `path` peut être dans les données $_POST
|
||||||
|
* 2. les données peuvent être dans l'url : /module/method/data1/data2/...
|
||||||
|
* les données peuvent être dans les données $_POST
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function fromPost($url, $post){
|
public static function remote($url, $data=null){
|
||||||
|
is_null($data) && ($data = []);
|
||||||
|
|
||||||
|
|
||||||
/* [1] On verifie que le @path est renseigne
|
/* [1] On verifie que le @path est renseigne
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Si le path est dans @url */
|
/* (1) Si le path est dans @url */
|
||||||
$pathInUrl = count($url) > 0 && is_string($url[0]) && strlen($url[0]) > 0 && preg_match('#^([\w_-]+)/([\w_-]+)/?$#', $url[0], $urlMatches);
|
$pathInUrl = is_string($url) && preg_match('#^/?([\w_-]+/[\w_-]+)(?:/?|/((?:\w+/)*(?:\w+/?)))$#', $url, $urlMatches);
|
||||||
|
|
||||||
|
/* (2) On récupère le @path + les arguments dans l'URL */
|
||||||
|
if( $pathInUrl ){
|
||||||
|
// {1} On ajoute le @path aux données //
|
||||||
|
$data['path'] = $urlMatches[1];
|
||||||
|
|
||||||
|
// {2} On ajoute les arguments d'URL aux données //
|
||||||
|
if( count($urlMatches) > 2 ){
|
||||||
|
|
||||||
|
$urlParams = explode('/', trim($urlMatches[2], '/'));
|
||||||
|
foreach($urlParams as $k=>$v)
|
||||||
|
$data["URL_$k"] = $v;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// On l'utilise pour le chemin
|
|
||||||
if( $pathInUrl )
|
|
||||||
$post['path'] = $urlMatches[1].'/'.$urlMatches[2];
|
|
||||||
|
|
||||||
/* (2) On vérifie dans tous les cas si le path existe */
|
/* (2) On vérifie dans tous les cas si le path existe */
|
||||||
if( !isset($post['path']) )
|
if( !isset($data['path']) )
|
||||||
return new ModuleRequest();
|
return new Request();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que @data est renseigne
|
/* [3] On met les paramètres en JSON
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Si variable n'existe pas, on cree un tableau vide
|
/* (1) On initialise les paramètres*/
|
||||||
$params = $post;
|
$params = [];
|
||||||
|
|
||||||
// On retire le @path de @params
|
/* (2) On met tous les paramètres en json (sauf @path) */
|
||||||
unset($params['path']);
|
foreach($data as $name=>$value){
|
||||||
|
if( $name === 'path' )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// {1} On met en JSON //
|
||||||
|
|
||||||
/* [3] On met les paramètres JSON en JSON (si ils décodent sans erreur)
|
|
||||||
=========================================================*/
|
|
||||||
foreach($params as $name=>$value){
|
|
||||||
$json = json_decode( $value, true );
|
$json = json_decode( $value, true );
|
||||||
// Si aucune erreur, on affecte la valeur
|
|
||||||
|
// {2} Si ok -> on remplace //
|
||||||
if( !is_null($json) )
|
if( !is_null($json) )
|
||||||
$params[$name] = $json;
|
$params[$name] = $json;
|
||||||
|
|
||||||
|
// {3} Sinon, on laisse tel quel //
|
||||||
|
else
|
||||||
|
$params[$name] = $value;
|
||||||
}
|
}
|
||||||
/* [4] On retourne une instance de <ModuleRequest>
|
|
||||||
|
/* [4] On retourne une instance de <Request>
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// On cree notre requete avec le token
|
return new Request($data['path'], $params);
|
||||||
return new ModuleRequest($post['path'], $params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -317,19 +401,19 @@
|
||||||
/* [1] Verification format general
|
/* [1] Verification format general
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format
|
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format
|
||||||
$this->error = Error::WrongPathModule;
|
$this->error->set(Err::WrongPathModule);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// On recupere les donnes de la regex
|
// On recupere les données de la regex
|
||||||
$module = $matches[1];
|
$module = $matches[1];
|
||||||
$method = $matches[2];
|
$method = __HTTP_METHOD__.'::'.$matches[2];
|
||||||
|
|
||||||
|
|
||||||
/* [2] Verification de l'existence du module (conf)
|
/* [2] Verification de l'existence du module (conf)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !array_key_exists($module, $this->modules) ){ // Si le module n'est pas specifie dans la conf
|
if( !array_key_exists($module, $this->modules) ){ // Si le module n'est pas specifie dans la conf
|
||||||
$this->error = Error::UnknownModule;
|
$this->error->set(Err::UnknownModule, $module);
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,7 +421,7 @@
|
||||||
/* [3] Verification de l'existence de la methode (conf)
|
/* [3] Verification de l'existence de la methode (conf)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( array_key_exists($method, $this->modules[$module]) === false ){ // Si la methode n'est pas specifie dans la conf
|
if( array_key_exists($method, $this->modules[$module]) === false ){ // Si la methode n'est pas specifie dans la conf
|
||||||
$this->error = Error::UnknownMethod;
|
$this->error->set(Err::UnknownMethod, preg_replace('/\w+::/i', '', $method) );
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,17 +454,21 @@
|
||||||
$method = $this->modules[$this->path['module']][$this->path['method']];
|
$method = $this->modules[$this->path['module']][$this->path['method']];
|
||||||
|
|
||||||
// Si aucune permission n'est definie
|
// Si aucune permission n'est definie
|
||||||
if( !isset($method['permissions']) ) return true;
|
if( !isset($method['permissions']) || !is_array($method['permissions']) || count($method['permissions']) < 1 )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Vérification des permissions et de l'authentification
|
/* [2] Vérification des permissions et de l'authentification
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$granted = Authentification::permission($this->path['module'], $method['permissions']);
|
$granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] );
|
||||||
|
|
||||||
/* (1) On retourne FAUX si aucun droit n'a ete trouve */
|
/* (1) On retourne FAUX si aucun droit n'a ete trouve */
|
||||||
if( $granted !== Error::Success )
|
if( $granted->get() !== Err::Success ){
|
||||||
$this->error = Error::PermissionError;
|
$this->error = $granted;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -403,7 +491,10 @@
|
||||||
/* [1] On verifie qu'il ne manque aucun parametre
|
/* [1] On verifie qu'il ne manque aucun parametre
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Si @params n'est pas un tableau
|
// Si @params n'est pas un tableau
|
||||||
if( !is_array($params) ) return false;
|
if( !is_array($params) ){
|
||||||
|
$this->error->set(Err::ConfigError);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$method = $this->modules[$this->path['module']][$this->path['method']];
|
$method = $this->modules[$this->path['module']][$this->path['method']];
|
||||||
|
|
||||||
|
@ -418,8 +509,10 @@
|
||||||
$isFile = isset($paramsdata['type']) && $paramsdata['type'] == 'FILE' && isset($_FILES[$name]);
|
$isFile = isset($paramsdata['type']) && $paramsdata['type'] == 'FILE' && isset($_FILES[$name]);
|
||||||
|
|
||||||
/* (3) Si le paramètre est obligatoire et qu'il n'est pas donné -> erreur */
|
/* (3) Si le paramètre est obligatoire et qu'il n'est pas donné -> erreur */
|
||||||
if( !isset($params[$name]) && !$optional && !$isFile )
|
if( !isset($params[$name]) && !$optional && !$isFile ){
|
||||||
|
$this->error->set(Err::MissingParam, $name);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/* (4) Si le type n'est pas defini, on a pas besoin de le vérifier */
|
/* (4) Si le type n'est pas defini, on a pas besoin de le vérifier */
|
||||||
if( !isset($paramsdata['type']) )
|
if( !isset($paramsdata['type']) )
|
||||||
|
@ -440,8 +533,10 @@
|
||||||
/* (6) Si le paramètre est renseigné */
|
/* (6) Si le paramètre est renseigné */
|
||||||
}else
|
}else
|
||||||
// Si la verification est fausse, on retourne faux
|
// Si la verification est fausse, on retourne faux
|
||||||
if( !Checker::run($paramsdata['type'], $params[$name]) )
|
if( !Checker::run($paramsdata['type'], $params[$name]) ){
|
||||||
|
$this->error->set(Err::WrongParam, $name, $paramsdata['type']);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,11 +594,12 @@
|
||||||
|
|
||||||
/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE
|
/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE
|
||||||
*
|
*
|
||||||
* @return path<Array> Retourne le chemin d'amorcage de la requete
|
* @return method<String> Retourne le chemin d'amorcage de la method
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private function getFunctionCaller(){
|
private function getModuleMethod(){
|
||||||
return [ '\\api\\module\\'.$this->path['module'], $this->path['method'] ];
|
/* (1) On essaie de trouver le bon nom */
|
||||||
|
return preg_replace('/\w+::/i', '', $this->path['method']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,47 +2,30 @@
|
||||||
|
|
||||||
namespace api\core;
|
namespace api\core;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
|
class Response{
|
||||||
// FORMAT:
|
|
||||||
//
|
|
||||||
// path: "nomModule/nomMethode"
|
|
||||||
// data1: {donnee1}
|
|
||||||
// data2: {donnee2}
|
|
||||||
// ...
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
class ModuleResponse{
|
|
||||||
|
|
||||||
// Attributs prives utiles (initialisation)
|
// Attributs prives utiles (initialisation)
|
||||||
private $data;
|
private $data;
|
||||||
public $error;
|
public $error;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* CONSTRUCTEUR D'UNE REPONSE DE MODULE
|
/* CONSTRUCTEUR D'UNE REPONSE DE MODULE
|
||||||
*
|
*
|
||||||
* @error<ModuleError> Erreur passee par la requete (si existe)
|
* @error<ModuleError> Erreur passee par la requete (si existe)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct($error=Error::Success){
|
public function __construct($error=null){
|
||||||
|
if( !( $error instanceof Error ) )
|
||||||
|
$error = new Error(Err::Success);
|
||||||
|
|
||||||
$this->data = [];
|
$this->data = [];
|
||||||
$this->error = $error;
|
$this->error = $error;
|
||||||
}
|
}
|
||||||
|
/* AJOUTE UNE DONNEE A LA REPONSE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AJOUTE UNE DONNEE A LA REPONSE
|
|
||||||
*
|
*
|
||||||
* @key<String> Le nom de la valeur a ajouter
|
* @key<String> Le nom de la valeur a ajouter
|
||||||
* @value<mixed*> La valeur a ajouter
|
* @value<mixed*> La valeur a ajouter
|
||||||
|
@ -56,12 +39,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AJOUTE TOUTES LES DONNEES A LA REPONSE
|
/* AJOUTE TOUTES LES DONNEES A LA REPONSE
|
||||||
*
|
*
|
||||||
* @dataset<Array> Le tableau associatif correspondant a la reponse
|
* @dataset<Array> Le tableau associatif correspondant a la reponse
|
||||||
|
@ -69,14 +46,15 @@
|
||||||
*/
|
*/
|
||||||
public function appendAll($dataset){
|
public function appendAll($dataset){
|
||||||
// Si ce n'est pas un tableau, on ne fais rien
|
// Si ce n'est pas un tableau, on ne fais rien
|
||||||
if( !is_array($dataset) ) return $this;
|
if( !is_array($dataset) )
|
||||||
|
return $this;
|
||||||
|
|
||||||
// Si une valeur contient une erreur
|
// Si une valeur contient une erreur
|
||||||
if( array_key_exists('ModuleError', $dataset) ){
|
if( array_key_exists('error', $dataset) && $dataset['error'] instanceof Error){
|
||||||
// On definit cette erreur
|
// On definit cette erreur
|
||||||
$this->error = $dataset['ModuleError'];
|
$this->error = $dataset['error'];
|
||||||
// On enleve cette entree des donnees
|
// On enleve cette entree des donnees
|
||||||
unset($dataset['ModuleError']);
|
unset($dataset['error']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajoute une entree pour la cle @key et de valeur @value
|
// Ajoute une entree pour la cle @key et de valeur @value
|
||||||
|
@ -84,14 +62,9 @@
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
/* RECUPERE UNE DONNEE DE LA REPONSE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RECUPERE UNE DONNEE DE LA REPONSE
|
|
||||||
*
|
*
|
||||||
* @key<String> Le nom de la valeur a recuperer
|
* @key<String> Le nom de la valeur a recuperer
|
||||||
*
|
*
|
||||||
|
@ -109,12 +82,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RECUPERE TOUTES LES DONNEES DE LA REPONSE
|
/* RECUPERE TOUTES LES DONNEES DE LA REPONSE
|
||||||
*
|
*
|
||||||
* @return data<Array> Les donnees de la reponse
|
* @return data<Array> Les donnees de la reponse
|
||||||
|
@ -126,10 +93,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* SERIALISATION A PARTIR DES DONNEES
|
/* SERIALISATION A PARTIR DES DONNEES
|
||||||
*
|
*
|
||||||
* @return json<String> Retourne les donnees serialisees
|
* @return json<String> Retourne les donnees serialisees
|
||||||
|
@ -138,15 +101,15 @@
|
||||||
public function serialize(){
|
public function serialize(){
|
||||||
|
|
||||||
// Code Http
|
// Code Http
|
||||||
Error::setHttpCode($this->error);
|
$this->error->setHttpCode();
|
||||||
|
|
||||||
// Type de contenu
|
// Type de contenu
|
||||||
// header('Content-Type: application/json; charset=utf-8');
|
header('Content-Type: application/json; charset=utf-8');
|
||||||
|
|
||||||
// On rajoute l'erreur au message
|
// On rajoute l'erreur au message
|
||||||
$returnData = array_merge([
|
$returnData = array_merge([
|
||||||
'ModuleError' => $this->error,
|
'error' => $this->error->get(),
|
||||||
'ErrorDescription' => Error::explicit($this->error)
|
'ErrorDescription' => $this->error->explicit()
|
||||||
],
|
],
|
||||||
$this->data
|
$this->data
|
||||||
);
|
);
|
||||||
|
@ -154,9 +117,6 @@
|
||||||
return json_encode($returnData);
|
return json_encode($returnData);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -4,12 +4,19 @@
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \manager\sessionManager;
|
use \manager\sessionManager;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
use \error\core\Error;
|
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \manager\repo\cluster as clusterRepo;
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
class authentificationDefault{
|
class authentificationDefault{
|
||||||
|
|
||||||
|
public function __construct(){
|
||||||
|
// Routine to execute before each call to authentificationDefault's method
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __destruct(){
|
||||||
|
// Routine to execute after each call to authentificationDefault's method
|
||||||
|
}
|
||||||
|
|
||||||
/* CONNEXION A UN ENTREPOT
|
/* CONNEXION A UN ENTREPOT
|
||||||
*
|
*
|
||||||
* @name<String> Nom de l'entrepot
|
* @name<String> Nom de l'entrepot
|
||||||
|
@ -18,7 +25,7 @@
|
||||||
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function warehouse($params){
|
public function warehouse($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,7 +77,7 @@
|
||||||
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function admin($params){
|
public function admin($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [0] Par défaut, on déconnecte l'administrateur
|
/* [0] Par défaut, on déconnecte l'administrateur
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
class clusterDefault{
|
class clusterDefault{
|
||||||
|
|
||||||
|
public function __construct(){}
|
||||||
|
public function __destruct(){}
|
||||||
|
|
||||||
/* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD
|
/* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD
|
||||||
*
|
*
|
||||||
|
@ -19,7 +21,7 @@
|
||||||
* @return id_cluster<int> Retourne l'UID du groupe
|
* @return id_cluster<int> Retourne l'UID du groupe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function create($params){
|
public function create($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [2] Creation du groupe
|
/* [2] Creation du groupe
|
||||||
|
@ -35,7 +37,7 @@
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
// Si une erreur est retournee, on retourne une erreur
|
||||||
if( $id_cluster === false )
|
if( $id_cluster === false )
|
||||||
return ['ModuleError' => Error::ModuleError];
|
return ['ModuleError' => new Error(Err::ModuleError)];
|
||||||
|
|
||||||
|
|
||||||
/* [5] Gestion du retour
|
/* [5] Gestion du retour
|
||||||
|
@ -57,7 +59,7 @@
|
||||||
* @return clusters<Array> Retourne la liste des groupes trouves
|
* @return clusters<Array> Retourne la liste des groupes trouves
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function search($params){
|
public function search($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
|
@ -101,7 +103,7 @@
|
||||||
* @return clusters<Array> Liste des groupes
|
* @return clusters<Array> Liste des groupes
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getAll($params){
|
public function getAll($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
|
@ -144,7 +146,7 @@
|
||||||
* @return cluster<Array> Groupe d'UID donne
|
* @return cluster<Array> Groupe d'UID donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getById($params){
|
public function getById($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$repoMethod = ($class==0) ? 'user_cluster/getById' : 'machine_cluster/getById';
|
$repoMethod = ($class==0) ? 'user_cluster/getById' : 'machine_cluster/getById';
|
||||||
|
@ -158,7 +160,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'cluster' => $answer ];
|
return [ 'cluster' => $answer ];
|
||||||
|
@ -176,7 +178,7 @@
|
||||||
* @return cluster<Array> Groupe de nom donne
|
* @return cluster<Array> Groupe de nom donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getByName($params){
|
public function getByName($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$repoMethod = ($class==0) ? 'user_cluster/getByName' : 'machine_cluster/getByName';
|
$repoMethod = ($class==0) ? 'user_cluster/getByName' : 'machine_cluster/getByName';
|
||||||
|
@ -190,7 +192,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'cluster' => $answer ];
|
return [ 'cluster' => $answer ];
|
||||||
|
@ -208,7 +210,7 @@
|
||||||
* @return members<Array> Membres du groupe donne
|
* @return members<Array> Membres du groupe donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getMembers($params){
|
public function getMembers($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$repoMethod = ($class==0) ? 'user_cluster/getMembers' : 'machine_cluster/getMembers';
|
$repoMethod = ($class==0) ? 'user_cluster/getMembers' : 'machine_cluster/getMembers';
|
||||||
|
@ -222,7 +224,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'members' => $answer ];
|
return [ 'members' => $answer ];
|
||||||
|
@ -241,7 +243,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function edit($params){
|
public function edit($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,7 +259,7 @@
|
||||||
|
|
||||||
// Si on a recupere aucun utilisateur, on retourne une erreur
|
// Si on a recupere aucun utilisateur, on retourne une erreur
|
||||||
if( $cluster_data === false )
|
if( $cluster_data === false )
|
||||||
return ['ModuleError' => Error::NoMatchFound];
|
return ['ModuleError' => new Error(Err::NoMatchFound)];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -298,7 +300,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function delete($params){
|
public function delete($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
$repoMethod = ($class==0) ? 'user_cluster/delete' : 'machine_cluster/delete';
|
$repoMethod = ($class==0) ? 'user_cluster/delete' : 'machine_cluster/delete';
|
||||||
|
@ -322,7 +324,7 @@
|
||||||
* @id_action<int> UID de l'action en question
|
* @id_action<int> UID de l'action en question
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function addPermission($params){
|
public function addPermission($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On crée la relation via le repo
|
/* [1] On crée la relation via le repo
|
||||||
|
@ -346,7 +348,7 @@
|
||||||
* @id_action<int> UID de l'action en question
|
* @id_action<int> UID de l'action en question
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function remPermission($params){
|
public function remPermission($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On supprime la relation via le repo
|
/* [1] On supprime la relation via le repo
|
||||||
|
@ -371,7 +373,7 @@
|
||||||
* @return permissions<Array> Liste des permissions du groupe
|
* @return permissions<Array> Liste des permissions du groupe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getPermissions($params){
|
public function getPermissions($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On propage au repo
|
/* [1] On propage au repo
|
||||||
|
@ -384,7 +386,7 @@
|
||||||
|
|
||||||
// Gestion erreur
|
// Gestion erreur
|
||||||
if( !is_array($res) )
|
if( !is_array($res) )
|
||||||
return ['ModuleError' => Error::NoMatchFound];
|
return ['ModuleError' => new Error(Err::NoMatchFound)];
|
||||||
|
|
||||||
/* (3) On retourne le résultat */
|
/* (3) On retourne le résultat */
|
||||||
return [ 'permissions' => $res ];
|
return [ 'permissions' => $res ];
|
||||||
|
@ -399,7 +401,7 @@
|
||||||
* @return clusters<Array> Liste des user_cluster ayant la permission sur le groupe target
|
* @return clusters<Array> Liste des user_cluster ayant la permission sur le groupe target
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getAuthenticatedClusters($params){
|
public function getAuthenticatedClusters($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On propage au repo
|
/* [1] On propage au repo
|
||||||
|
@ -410,7 +412,7 @@
|
||||||
|
|
||||||
// error
|
// error
|
||||||
if( !is_array($res) )
|
if( !is_array($res) )
|
||||||
return ['ModuleError' => Error::NoMatchFound];
|
return ['ModuleError' => new Error(Err::NoMatchFound)];
|
||||||
|
|
||||||
return ['clusters' => $res];
|
return ['clusters' => $res];
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
class historyDefault{
|
class historyDefault{
|
||||||
|
|
||||||
|
public function __construct(){}
|
||||||
|
public function __destruct(){}
|
||||||
|
|
||||||
|
|
||||||
/* CREATION D'UNE NOUVELLE ENTREE DANS LA BDD
|
/* CREATION D'UNE NOUVELLE ENTREE DANS LA BDD
|
||||||
|
@ -20,7 +22,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function create($params){
|
public function create($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] Creation de l'utilisateur
|
/* [1] Creation de l'utilisateur
|
||||||
|
@ -35,7 +37,7 @@
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
// Si une erreur est retournee, on retourne une erreur
|
||||||
if( $id_entry === false )
|
if( $id_entry === false )
|
||||||
return ['ModuleError' => Error::ModuleError];
|
return ['ModuleError' => new Error(Err::ModuleError)];
|
||||||
|
|
||||||
|
|
||||||
/* [2] Gestion du retour
|
/* [2] Gestion du retour
|
||||||
|
@ -56,7 +58,7 @@
|
||||||
* @return users<Array> Retourne la liste des utilisateurs trouves
|
* @return users<Array> Retourne la liste des utilisateurs trouves
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function search($params){
|
public function search($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -77,7 +79,7 @@
|
||||||
* @return history<Array> Liste des entrées de l'historique
|
* @return history<Array> Liste des entrées de l'historique
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getAll(){
|
public function getAll(){
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
$entries = new Repo('history/getAll', [ $_SESSION['WAREHOUSE']['id'] ]);
|
$entries = new Repo('history/getAll', [ $_SESSION['WAREHOUSE']['id'] ]);
|
||||||
|
|
||||||
|
@ -92,7 +94,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function delete($params){
|
public function delete($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On supprime l'utilisateur
|
/* [1] On supprime l'utilisateur
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
|
|
||||||
class machineDefault{
|
class machineDefault{
|
||||||
|
|
||||||
|
public function __construct(){}
|
||||||
|
public function __destruct(){}
|
||||||
|
|
||||||
|
|
||||||
/* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD
|
/* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD
|
||||||
*
|
*
|
||||||
|
@ -17,7 +20,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function create($params){
|
public function create($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] Creation de la machine
|
/* [1] Creation de la machine
|
||||||
|
@ -30,7 +33,7 @@
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
// Si une erreur est retournee, on retourne une erreur
|
||||||
if( $id_machine === false )
|
if( $id_machine === false )
|
||||||
return ['ModuleError' => Error::ModuleError];
|
return ['ModuleError' => new Error(Err::ModuleError)];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +57,7 @@
|
||||||
* Renvoie FALSE si une erreur occure
|
* Renvoie FALSE si une erreur occure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function link($params){
|
public function link($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* Creation de l'association */
|
/* Creation de l'association */
|
||||||
|
@ -81,7 +84,7 @@
|
||||||
* Renvoie FALSE si une erreur occure
|
* Renvoie FALSE si une erreur occure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function unlink($params){
|
public function unlink($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* Suppression de l'association */
|
/* Suppression de l'association */
|
||||||
|
@ -106,7 +109,7 @@
|
||||||
* @return machines<Array> Retourne la liste des machines trouvees
|
* @return machines<Array> Retourne la liste des machines trouvees
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function search($params){
|
public function search($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -127,7 +130,7 @@
|
||||||
* @return machines<Array> Liste des machines
|
* @return machines<Array> Liste des machines
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getAll(){
|
public function getAll(){
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
$machines = new Repo('machine/getAll', [$_SESSION['WAREHOUSE']['id']]);
|
$machines = new Repo('machine/getAll', [$_SESSION['WAREHOUSE']['id']]);
|
||||||
|
|
||||||
|
@ -145,7 +148,7 @@
|
||||||
* @return machine<Array> Machine d'UID donne
|
* @return machine<Array> Machine d'UID donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getById($params){
|
public function getById($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -157,7 +160,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'machine' => $answer ];
|
return [ 'machine' => $answer ];
|
||||||
|
@ -174,7 +177,7 @@
|
||||||
* @return machine<Array> Machine de name donne
|
* @return machine<Array> Machine de name donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getByName($params){
|
public function getByName($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,7 +190,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'machine' => $answer ];
|
return [ 'machine' => $answer ];
|
||||||
|
@ -204,7 +207,7 @@
|
||||||
* @return clusters<Array> Groupes de la machine donne
|
* @return clusters<Array> Groupes de la machine donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getClusters($params){
|
public function getClusters($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -216,7 +219,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'clusters' => $answer ];
|
return [ 'clusters' => $answer ];
|
||||||
|
@ -234,7 +237,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function edit($params){
|
public function edit($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,7 +251,7 @@
|
||||||
|
|
||||||
// Si on a recupere aucune machine, on retourne une erreur
|
// Si on a recupere aucune machine, on retourne une erreur
|
||||||
if( !is_array($machine_data) )
|
if( !is_array($machine_data) )
|
||||||
return ['ModuleError' => Error::NoMatchFound];
|
return ['ModuleError' => new Error(Err::NoMatchFound)];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -290,7 +293,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function delete($params){
|
public function delete($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -324,7 +327,7 @@
|
||||||
* @return data<Array> Données d'initialisation du système
|
* @return data<Array> Données d'initialisation du système
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function init($params){
|
public function init($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On récupére la liste des actions
|
/* [1] On récupére la liste des actions
|
||||||
|
@ -459,7 +462,7 @@
|
||||||
* @return data<Array> Données de retour de synchronisation
|
* @return data<Array> Données de retour de synchronisation
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function sync($params){
|
public function sync($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [0] Vérification du token
|
/* [0] Vérification du token
|
||||||
|
@ -468,7 +471,7 @@
|
||||||
|
|
||||||
// Si token incorrect, on envoie une erreur
|
// Si token incorrect, on envoie une erreur
|
||||||
if( $checkToken->answer() !== true )
|
if( $checkToken->answer() !== true )
|
||||||
return [ 'ModuleError' => Error::TokenError ];
|
return [ 'ModuleError' => new Error(Err::TokenError) ];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,21 @@
|
||||||
|
|
||||||
namespace api\module;
|
namespace api\module;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
use \manager\ResourceDispatcher;
|
use \manager\ResourceDispatcher;
|
||||||
|
|
||||||
class module{
|
class module{
|
||||||
|
|
||||||
|
public function __construct(){}
|
||||||
|
public function __destruct(){}
|
||||||
|
|
||||||
/* PERMET DE TESTER L'API
|
/* PERMET DE TESTER L'API
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function method($params){
|
public function method($params){
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'ModuleError' => Error::Success,
|
'ModuleError' => new Error(Err::Success),
|
||||||
'ReceivedArguments' => $params
|
'ReceivedArguments' => $params
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -23,7 +27,7 @@
|
||||||
* @return markdown<String> Description des modules
|
* @return markdown<String> Description des modules
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function markdown(){
|
public function markdown(){
|
||||||
/* [1] Récupération de la configuration
|
/* [1] Récupération de la configuration
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// On récupère le fichier et on le parse
|
// On récupère le fichier et on le parse
|
||||||
|
@ -31,7 +35,7 @@
|
||||||
|
|
||||||
// Gestion de l'erreur de parsage
|
// Gestion de l'erreur de parsage
|
||||||
if( $modules == null )
|
if( $modules == null )
|
||||||
return [ 'ModuleError' => Error::ParsingFailed ];
|
return [ 'ModuleError' => new Error(Err::ParsingFailed) ];
|
||||||
|
|
||||||
/* [2] Mise en forme de la liste des modules
|
/* [2] Mise en forme de la liste des modules
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
@ -61,7 +65,7 @@
|
||||||
/* [n] Gestion du retour
|
/* [n] Gestion du retour
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return [
|
return [
|
||||||
'ModuleError' => Error::Success,
|
'ModuleError' => new Error(Err::Success),
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'text/markdown; charset=utf-8',
|
'Content-Type' => 'text/markdown; charset=utf-8',
|
||||||
'Content-Transfer-Encoding' => 'binary',
|
'Content-Transfer-Encoding' => 'binary',
|
||||||
|
@ -79,7 +83,7 @@
|
||||||
* @return apiBlueprint<String> Description des modules au format API Blueprint
|
* @return apiBlueprint<String> Description des modules au format API Blueprint
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function apiBlueprint(){
|
public function apiBlueprint(){
|
||||||
/* [0] Récupération de la configuration
|
/* [0] Récupération de la configuration
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// On récupère le fichier et on le parse
|
// On récupère le fichier et on le parse
|
||||||
|
@ -87,7 +91,7 @@
|
||||||
|
|
||||||
// Gestion de l'erreur de parsage
|
// Gestion de l'erreur de parsage
|
||||||
if( $modules == null )
|
if( $modules == null )
|
||||||
return [ 'ModuleError' => Error::ParsingFailed ];
|
return [ 'ModuleError' => new Error(Err::ParsingFailed) ];
|
||||||
|
|
||||||
|
|
||||||
/* [1] Début du fichier custom
|
/* [1] Début du fichier custom
|
||||||
|
@ -259,7 +263,7 @@
|
||||||
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'ModuleError' => Error::Success,
|
'ModuleError' => new Error(Err::Success),
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'application/octet-stream; charset=utf-8',
|
'Content-Type' => 'application/octet-stream; charset=utf-8',
|
||||||
'Content-Transfer-Encoding' => 'binary',
|
'Content-Transfer-Encoding' => 'binary',
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
class userDefault{
|
class userDefault{
|
||||||
|
|
||||||
|
public function __construct(){}
|
||||||
|
public function __destruct(){}
|
||||||
|
|
||||||
/* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD
|
/* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD
|
||||||
*
|
*
|
||||||
|
@ -20,7 +22,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function create($params){
|
public function create($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] Creation de l'utilisateur
|
/* [1] Creation de l'utilisateur
|
||||||
|
@ -37,7 +39,7 @@
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
// Si une erreur est retournee, on retourne une erreur
|
||||||
if( $id_user === false )
|
if( $id_user === false )
|
||||||
return ['ModuleError' => Error::ModuleError];
|
return ['ModuleError' => new Error(Err::ModuleError)];
|
||||||
|
|
||||||
|
|
||||||
/* [2] Gestion du retour
|
/* [2] Gestion du retour
|
||||||
|
@ -60,7 +62,7 @@
|
||||||
* Renvoie FALSE si une erreur occure
|
* Renvoie FALSE si une erreur occure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function link($params){
|
public function link($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] Creation de l'association
|
/* [1] Creation de l'association
|
||||||
|
@ -88,7 +90,7 @@
|
||||||
* Renvoie FALSE si une erreur occure
|
* Renvoie FALSE si une erreur occure
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function unlink($params){
|
public function unlink($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] Suppression de l'association
|
/* [1] Suppression de l'association
|
||||||
|
@ -114,7 +116,7 @@
|
||||||
* @return users<Array> Retourne la liste des utilisateurs trouves
|
* @return users<Array> Retourne la liste des utilisateurs trouves
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function search($params){
|
public function search($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -135,7 +137,7 @@
|
||||||
* @return utilisateurs<Array> Liste des utilisateurs
|
* @return utilisateurs<Array> Liste des utilisateurs
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getAll(){
|
public function getAll(){
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
$users = new Repo('user/getAll', [ $_SESSION['WAREHOUSE']['id'] ]);
|
$users = new Repo('user/getAll', [ $_SESSION['WAREHOUSE']['id'] ]);
|
||||||
|
|
||||||
|
@ -153,7 +155,7 @@
|
||||||
* @return utilisateur<Array> Utilisateur d'UID donne
|
* @return utilisateur<Array> Utilisateur d'UID donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getById($params){
|
public function getById($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -165,7 +167,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'user' => $answer ];
|
return [ 'user' => $answer ];
|
||||||
|
@ -182,7 +184,7 @@
|
||||||
* @return utilisateur<Array> Utilisateur de code donne
|
* @return utilisateur<Array> Utilisateur de code donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getByCode($params){
|
public function getByCode($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
// On recupere les donnees
|
// On recupere les donnees
|
||||||
|
@ -194,7 +196,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'user' => $answer ];
|
return [ 'user' => $answer ];
|
||||||
|
@ -211,7 +213,7 @@
|
||||||
* @return utilisateur<Array> Utilisateur d'username donne
|
* @return utilisateur<Array> Utilisateur d'username donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getByUsername($params){
|
public function getByUsername($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -224,7 +226,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'user' => $answer ];
|
return [ 'user' => $answer ];
|
||||||
|
@ -241,7 +243,7 @@
|
||||||
* @return clusters<Array> Groupes de l'utilisateur donne
|
* @return clusters<Array> Groupes de l'utilisateur donne
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function getClusters($params){
|
public function getClusters($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,7 +256,7 @@
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
// Si aucun resultat, on retourne une erreur
|
||||||
if( $answer === false )
|
if( $answer === false )
|
||||||
return [ 'ModuleError' => Error::NoMatchFound ];
|
return [ 'ModuleError' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
return [ 'clusters' => $answer ];
|
return [ 'clusters' => $answer ];
|
||||||
|
@ -276,7 +278,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function edit($params){
|
public function edit($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On verifie l'existence de l'utilisateur
|
/* [1] On verifie l'existence de l'utilisateur
|
||||||
|
@ -289,7 +291,7 @@
|
||||||
|
|
||||||
// Si on a recupere aucun utilisateur, on retourne une erreur
|
// Si on a recupere aucun utilisateur, on retourne une erreur
|
||||||
if( !is_array($user_data) )
|
if( !is_array($user_data) )
|
||||||
return ['ModuleError' => Error::NoMatchFound];
|
return ['ModuleError' => new Error(Err::NoMatchFound)];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -343,7 +345,7 @@
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function delete($params){
|
public function delete($params){
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* [1] On supprime l'utilisateur
|
/* [1] On supprime l'utilisateur
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace database\core;
|
namespace database\core;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
|
|
||||||
class DataBaseDriver{
|
class DataBaseDriver{
|
||||||
|
@ -62,11 +63,11 @@
|
||||||
$this->pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password, [\PDO::ATTR_TIMEOUT => 10]);
|
$this->pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password, [\PDO::ATTR_TIMEOUT => 10]);
|
||||||
|
|
||||||
// On signale que tout s'est bien passe
|
// On signale que tout s'est bien passe
|
||||||
$this->error = Error::Success;
|
$this->error = new Error(Err::Success);
|
||||||
|
|
||||||
}catch(Exception $e){
|
}catch(Exception $e){
|
||||||
// On signale qu'il y a une erreur
|
// On signale qu'il y a une erreur
|
||||||
$this->error = Error::PDOConnection;
|
$this->error = new Error(Err::PDOConnection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace database\core;
|
namespace database\core;
|
||||||
|
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@
|
||||||
|
|
||||||
// Si pas parametre manquant, on quitte
|
// Si pas parametre manquant, on quitte
|
||||||
if( $path == null ){
|
if( $path == null ){
|
||||||
$this->error = Error::MissingPath;
|
$this->error = new Error(Err::MissingPath);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@
|
||||||
|
|
||||||
// Gestion de l'erreur de parsage
|
// Gestion de l'erreur de parsage
|
||||||
if( $this->repositories == null ){
|
if( $this->repositories == null ){
|
||||||
$this->error = Error::ParsingFailed;
|
$this->error = new Error(Err::ParsingFailed);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +72,7 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Type de @path
|
// Type de @path
|
||||||
if( !is_string($path) ){ // Si le type est incorrect
|
if( !is_string($path) ){ // Si le type est incorrect
|
||||||
$this->error = Error::WrongPathRepo;
|
$this->error = new Error(Err::WrongPathRepo);
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@
|
||||||
/* [3] Construction de l'objet
|
/* [3] Construction de l'objet
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$this->params = $params;
|
$this->params = $params;
|
||||||
$this->error = Error::Success;
|
$this->error = new Error(Err::Success);
|
||||||
|
|
||||||
/* [4] Enregistrement de la reponse
|
/* [4] Enregistrement de la reponse
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
@ -105,7 +106,7 @@
|
||||||
|
|
||||||
|
|
||||||
public function answer(){
|
public function answer(){
|
||||||
if( $this->error != Error::Success )
|
if( $this->error != new Error(Err::Success) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return $this->answer;
|
return $this->answer;
|
||||||
|
@ -121,14 +122,14 @@
|
||||||
public function dispatch(){
|
public function dispatch(){
|
||||||
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
/* [1] On verifie qu'aucune erreur n'a ete signalee
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( $this->error != Error::Success ) // si il y a une erreur
|
if( $this->error != new Error(Err::Success) ) // si il y a une erreur
|
||||||
return false; // on la passe a la reponse
|
return false; // on la passe a la reponse
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que la methode est amorcable
|
/* [2] On verifie que la methode est amorcable
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !is_callable($this->getFunctionCaller()) ){
|
if( !is_callable($this->getFunctionCaller()) ){
|
||||||
$this->error = Error::UncallableMethod;
|
$this->error = new Error(Err::UncallableMethod);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +152,7 @@
|
||||||
/* [1] Verification format general
|
/* [1] Verification format general
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format
|
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format
|
||||||
$this->error = Error::WrongPathRepo;
|
$this->error = new Error(Err::WrongPathRepo);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,14 +163,14 @@
|
||||||
/* [2] Verification de l'existence du repo (conf)
|
/* [2] Verification de l'existence du repo (conf)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !array_key_exists($repository, $this->repositories) ){ // Si le repo n'est pas specifie dans la conf
|
if( !array_key_exists($repository, $this->repositories) ){ // Si le repo n'est pas specifie dans la conf
|
||||||
$this->error = Error::UnknownRepo;
|
$this->error = new Error(Err::UnknownRepo);
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
/* [3] Verification de l'existence de la methode (conf)
|
/* [3] Verification de l'existence de la methode (conf)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( array_search($method, $this->repositories[$repository]) === false ){ // Si la methode n'est pas specifie dans la conf
|
if( array_search($method, $this->repositories[$repository]) === false ){ // Si la methode n'est pas specifie dans la conf
|
||||||
$this->error = Error::UnknownMethod;
|
$this->error = new Error(Err::UnknownMethod);
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
class action extends parentRepo{
|
class action extends parentRepo{
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
use \error\core\Err;
|
||||||
use \orm\core\Table;
|
use \orm\core\Table;
|
||||||
use \orm\core\Rows;
|
use \orm\core\Rows;
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
/* (2) Si aucun résultat, on retourne une erreur */
|
/* (2) Si aucun résultat, on retourne une erreur */
|
||||||
if( $targetCheck === false )
|
if( $targetCheck === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
/* [2] On vérifie l'existance du groupe 'source'
|
/* [2] On vérifie l'existance du groupe 'source'
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
/* (2) Si aucun résultat, on retourne une erreur */
|
/* (2) Si aucun résultat, on retourne une erreur */
|
||||||
if( $sourceCheck === false )
|
if( $sourceCheck === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
/* [3] On vérifie l'existance de l'action
|
/* [3] On vérifie l'existance de l'action
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
/* (2) Si aucun résultat, on retourne une erreur */
|
/* (2) Si aucun résultat, on retourne une erreur */
|
||||||
if( $actionCheck === false )
|
if( $actionCheck === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
/* [4] On vérifie que l'entrée n'existe pas déja
|
/* [4] On vérifie que l'entrée n'existe pas déja
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
/* (3) Si les données sont identiques pour au moins une entrée, on retourne un succès */
|
/* (3) Si les données sont identiques pour au moins une entrée, on retourne un succès */
|
||||||
foreach($checkAlready as $s=>$sameTarget)
|
foreach($checkAlready as $s=>$sameTarget)
|
||||||
if( $sameTarget['id_source'] == $id_source && $sameTarget['id_action'] == $id_action )
|
if( $sameTarget['id_source'] == $id_source && $sameTarget['id_action'] == $id_action )
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,10 +92,10 @@
|
||||||
|
|
||||||
/* (2) Si erreur SQL, on retourne une erreur */
|
/* (2) Si erreur SQL, on retourne une erreur */
|
||||||
if( !$inserted )
|
if( !$inserted )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
|
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
|
|
||||||
/* (3) Si on a pas trouvé, on retourne une erreur */
|
/* (3) Si on a pas trouvé, on retourne une erreur */
|
||||||
if( is_null($existingId) )
|
if( is_null($existingId) )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
/* [2] On supprime la action
|
/* [2] On supprime la action
|
||||||
|
@ -150,10 +150,10 @@
|
||||||
|
|
||||||
/* (2) Si erreur SQL, on retourne une erreur */
|
/* (2) Si erreur SQL, on retourne une erreur */
|
||||||
if( !$deleted || self::getById($existingId) !== false )
|
if( !$deleted || self::getById($existingId) !== false )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
|
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
|
||||||
use \orm\core\Table;
|
use \orm\core\Table;
|
||||||
use \orm\core\Rows;
|
use \orm\core\Rows;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
class global_state extends parentRepo{
|
class global_state extends parentRepo{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \error\core\Error;
|
use \error\core\Err;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \orm\core\Table;
|
use \orm\core\Table;
|
||||||
use \orm\core\Rows;
|
use \orm\core\Rows;
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
|
|
||||||
// Si le groupe n'existe pas
|
// Si le groupe n'existe pas
|
||||||
if( $cluster === false )
|
if( $cluster === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
/* (2) On récupère l'utilisateur */
|
/* (2) On récupère l'utilisateur */
|
||||||
$machineR = Table::get('machine')
|
$machineR = Table::get('machine')
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
|
|
||||||
// Si l'utilisateur n'existe pas
|
// Si l'utilisateur n'existe pas
|
||||||
if( $machine === false )
|
if( $machine === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
/* (3) On vérifie qu'il n'y a pas déja d'appartenance */
|
/* (3) On vérifie qu'il n'y a pas déja d'appartenance */
|
||||||
$cluster_mergeR = Table::get('machine_cluster_merge')
|
$cluster_mergeR = Table::get('machine_cluster_merge')
|
||||||
|
@ -100,7 +100,7 @@
|
||||||
|
|
||||||
// Si la relation existe déja, on ne fait rien
|
// Si la relation existe déja, on ne fait rien
|
||||||
if( $cluster_merge_exists !== false )
|
if( $cluster_merge_exists !== false )
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,13 +117,13 @@
|
||||||
|
|
||||||
/* (2) Si erreur, on la retourne */
|
/* (2) Si erreur, on la retourne */
|
||||||
if( !$inserted )
|
if( !$inserted )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
/* (3) On vérifie quand même que l'entrée existe */
|
/* (3) On vérifie quand même que l'entrée existe */
|
||||||
$cluster_merge_inserted = $cluster_mergeR->fetch();
|
$cluster_merge_inserted = $cluster_mergeR->fetch();
|
||||||
|
|
||||||
/* (4) Sinon, on renvoie que tout s'est bien passé */
|
/* (4) Sinon, on renvoie que tout s'est bien passé */
|
||||||
return is_array($cluster_merge_inserted) ? Error::Success : Error::RepoError;
|
return is_array($cluster_merge_inserted) ? Err::Success : Err::RepoError;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@
|
||||||
|
|
||||||
/* (2) Si on ne trouve rien */
|
/* (2) Si on ne trouve rien */
|
||||||
if( $get_merge_id === false )
|
if( $get_merge_id === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -162,15 +162,15 @@
|
||||||
|
|
||||||
// Si erreur
|
// Si erreur
|
||||||
if( !$deleted )
|
if( !$deleted )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
/* [2] On verifie que l'association n'existe plus
|
/* [2] On verifie que l'association n'existe plus
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( self::getMerge($id_warehouse, $id_machine_cluster, $id_machine) !== false )
|
if( self::getMerge($id_warehouse, $id_machine_cluster, $id_machine) !== false )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
|
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
class pin_merge extends parentRepo{
|
class pin_merge extends parentRepo{
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \error\core\Error;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
class state extends parentRepo{
|
class state extends parentRepo{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace database\repo;
|
namespace database\repo;
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \error\core\Error;
|
use \error\core\Err;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \orm\core\Table;
|
use \orm\core\Table;
|
||||||
use \orm\core\Rows;
|
use \orm\core\Rows;
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
|
|
||||||
// Si le groupe n'existe pas
|
// Si le groupe n'existe pas
|
||||||
if( $cluster === false )
|
if( $cluster === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
/* (2) On récupère l'utilisateur */
|
/* (2) On récupère l'utilisateur */
|
||||||
$userR = Table::get('user')
|
$userR = Table::get('user')
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
|
|
||||||
// Si l'utilisateur n'existe pas
|
// Si l'utilisateur n'existe pas
|
||||||
if( $user === false )
|
if( $user === false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
/* (3) On vérifie qu'il n'y a pas déja d'appartenance */
|
/* (3) On vérifie qu'il n'y a pas déja d'appartenance */
|
||||||
$cluster_mergeR = Table::get('user_cluster_merge')
|
$cluster_mergeR = Table::get('user_cluster_merge')
|
||||||
|
@ -100,7 +100,7 @@
|
||||||
|
|
||||||
// Si la relation existe déja, on ne fait rien
|
// Si la relation existe déja, on ne fait rien
|
||||||
if( $cluster_merge_exists !== false )
|
if( $cluster_merge_exists !== false )
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,13 +117,13 @@
|
||||||
|
|
||||||
/* (2) Si erreur, on la retourne */
|
/* (2) Si erreur, on la retourne */
|
||||||
if( !$inserted )
|
if( !$inserted )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
/* (3) On vérifie quand même que l'entrée existe */
|
/* (3) On vérifie quand même que l'entrée existe */
|
||||||
$cluster_merge_inserted = $cluster_mergeR->fetch();
|
$cluster_merge_inserted = $cluster_mergeR->fetch();
|
||||||
|
|
||||||
/* (4) Sinon, on renvoie que tout s'est bien passé */
|
/* (4) Sinon, on renvoie que tout s'est bien passé */
|
||||||
return is_array($cluster_merge_inserted) ? Error::Success : Error::RepoError;
|
return is_array($cluster_merge_inserted) ? Err::Success : Err::RepoError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@
|
||||||
|
|
||||||
/* (2) Si on ne trouve rien */
|
/* (2) Si on ne trouve rien */
|
||||||
if( $get_merge_id == false )
|
if( $get_merge_id == false )
|
||||||
return Error::NoMatchFound;
|
return Err::NoMatchFound;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,15 +161,15 @@
|
||||||
|
|
||||||
// Si erreur
|
// Si erreur
|
||||||
if( !$deleted )
|
if( !$deleted )
|
||||||
return Error::RepoError;
|
return Err::RepoError;
|
||||||
|
|
||||||
/* [2] On verifie que l'association n'existe plus
|
/* [2] On verifie que l'association n'existe plus
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( self::getMerge($id_warehouse, $id_user_cluster, $id_user) !== false )
|
if( self::getMerge($id_warehouse, $id_user_cluster, $id_user) !== false )
|
||||||
return Error::ModuleError;
|
return Err::ModuleError;
|
||||||
|
|
||||||
|
|
||||||
return Error::Success;
|
return Err::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace error\core;
|
||||||
|
|
||||||
|
|
||||||
|
class Err{
|
||||||
|
/* [1] Success
|
||||||
|
=========================================================*/
|
||||||
|
const Success = 0;
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Fichiers / Ressources
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Parsage json/xml */
|
||||||
|
const ParsingFailed = 1;
|
||||||
|
/* (2) Fichier inexistant */
|
||||||
|
const UnreachableResource = 2;
|
||||||
|
/* (3) Erreur d'upload */
|
||||||
|
const UploadError = 3;
|
||||||
|
/* (4) Mauvais format de fichier */
|
||||||
|
const FormatError = 4;
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] Permissions
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Token inexistant ou incorrect */
|
||||||
|
const TokenError = 5;
|
||||||
|
/* (2) Permission non autorisée */
|
||||||
|
const PermissionError = 6;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] API
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Le module n'est pas activé */
|
||||||
|
const DisabledModule = 7;
|
||||||
|
|
||||||
|
/* (2) Le @path n'est pas renseigne */
|
||||||
|
const MissingPath = 8;
|
||||||
|
/* (3) Verification de la coherence du chemin (existe dans la conf) */
|
||||||
|
const WrongPathModule = 9;
|
||||||
|
|
||||||
|
/* (4) Module non specifie dans la conf */
|
||||||
|
const UnknownModule = 10;
|
||||||
|
/* (5) Methode non specifie pour ce Module dans la conf */
|
||||||
|
const UnknownMethod = 11;
|
||||||
|
|
||||||
|
/* (6) Module non amorcable */
|
||||||
|
const UncallableModule = 12;
|
||||||
|
/* (7) Methode non amorcable */
|
||||||
|
const UncallableMethod = 13;
|
||||||
|
|
||||||
|
/* (8) Erreur méthode HTTP */
|
||||||
|
const UnknownHttpMethod = 14;
|
||||||
|
|
||||||
|
/* (9) Erreur de configuration */
|
||||||
|
const ConfigError = 15;
|
||||||
|
/* (10) Paramètre manquant */
|
||||||
|
const MissingParam = 16;
|
||||||
|
/* (11) Paramètre incorrect */
|
||||||
|
const WrongParam = 17;
|
||||||
|
/* (12) Erreur dans le traitement */
|
||||||
|
const ModuleError = 18;
|
||||||
|
|
||||||
|
|
||||||
|
/* [5] Database
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Base de données
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Erreur lors de la creation d'un objet PDO (connection) */
|
||||||
|
const PDOConnection = 19;
|
||||||
|
|
||||||
|
/* (2) Repositories
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Verification de la coherence du chemin (existe dans la conf) */
|
||||||
|
const WrongPathRepo = 20;
|
||||||
|
|
||||||
|
/* (2) Module non specifie dans la conf */
|
||||||
|
const UnknownRepo = 21;
|
||||||
|
|
||||||
|
/* (3) Erreur dans le traitement */
|
||||||
|
const RepoError = 22;
|
||||||
|
|
||||||
|
/* (3) ORM
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Table n'existe pas */
|
||||||
|
const UnknownTable = 23;
|
||||||
|
/* (2) Pas permissions de lire le schéma */
|
||||||
|
const NotAllowedSchema = 24;
|
||||||
|
|
||||||
|
|
||||||
|
/* [6] Erreurs diverses
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Aucune donnée trouvée */
|
||||||
|
const NoMatchFound = 25;
|
||||||
|
|
||||||
|
/* (2) Mauvais chemin de template */
|
||||||
|
const UnknownTemplate = 26;
|
||||||
|
|
||||||
|
/* (3) géolocalisation échouée */
|
||||||
|
const UnknownAddress = 27;
|
||||||
|
|
||||||
|
/* (4) Erreur inconnue */
|
||||||
|
const UnknownError = 28;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -3,148 +3,189 @@
|
||||||
|
|
||||||
namespace error\core;
|
namespace error\core;
|
||||||
|
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class Error{
|
class Error{
|
||||||
|
|
||||||
/* SUCCESS */
|
private $error = null;
|
||||||
const Success = 0;
|
private $arguments = [];
|
||||||
|
|
||||||
/* Parsage json */
|
/* ERROR CONSTRUCTOR
|
||||||
const ParsingFailed = 1;
|
*
|
||||||
|
* @error<const> Const error
|
||||||
|
* @arg1<String> [OPT] Argument 1
|
||||||
|
* @arg2<String> [OPT] Argument 2
|
||||||
|
* @arg...<String> [OPT] Argument ...
|
||||||
|
*
|
||||||
|
* @return instance<Error> Error instance
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function __construct($const){
|
||||||
|
call_user_func_array([$this, 'set'], func_get_args());
|
||||||
|
}
|
||||||
|
|
||||||
/* ResourceDispatcher */
|
/* ERROR GETTER
|
||||||
|
*
|
||||||
|
* @return Err<Err::Constant> Error
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function get(){ return $this->error; }
|
||||||
|
|
||||||
// Drapeaux invalides
|
/* ERROR SETTER
|
||||||
const InvalidFlags = 2;
|
*
|
||||||
|
* @error<const> Const error
|
||||||
|
* @arg1<String> [OPT] Argument 1
|
||||||
|
* @arg2<String> [OPT] Argument 2
|
||||||
|
* @arg...<String> [OPT] Argument ...
|
||||||
|
*
|
||||||
|
* @return instance<Error> Error instance
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function set($const){
|
||||||
|
/* [1] On découpe les arguments
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On récupère l'erreur */
|
||||||
|
$this->error = !is_numeric($const) ? Err::UnknownError : $const;
|
||||||
|
|
||||||
// Fichier inexistant
|
/* (2) On récupère les arguments */
|
||||||
const UnreachableResource = 3;
|
$this->arguments = array_slice(func_get_args(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
/* ModuleRequest */
|
|
||||||
|
|
||||||
// Le module n'est pas activé
|
|
||||||
const DisabledModule = 4;
|
|
||||||
|
|
||||||
// Le @path n'est pas renseigne
|
|
||||||
const MissingPath = 5;
|
|
||||||
|
|
||||||
// Verification de la coherence du chemin (existe dans la conf)
|
|
||||||
const WrongPathModule = 6;
|
|
||||||
|
|
||||||
// Module non specifie dans la conf
|
|
||||||
const UnknownModule = 7;
|
|
||||||
|
|
||||||
// Methode non specifie pour ce Module dans la conf
|
|
||||||
const UnknownMethod = 8;
|
|
||||||
|
|
||||||
// Methode inamorcable
|
|
||||||
const UncallableMethod = 9;
|
|
||||||
|
|
||||||
// Erreur de parametre(s)
|
|
||||||
const ParamError = 10;
|
|
||||||
|
|
||||||
// Erreur dans le traitement
|
|
||||||
const ModuleError = 11;
|
|
||||||
|
|
||||||
/* Repo */
|
|
||||||
|
|
||||||
// Verification de la coherence du chemin (existe dans la conf)
|
|
||||||
const WrongPathRepo = 12;
|
|
||||||
|
|
||||||
// Module non specifie dans la conf
|
|
||||||
const UnknownRepo = 13;
|
|
||||||
|
|
||||||
// Erreur dans le traitement
|
|
||||||
const RepoError = 14;
|
|
||||||
|
|
||||||
/* Database */
|
|
||||||
|
|
||||||
// Erreur lors de la creation d'un objet PDO (connection)
|
|
||||||
const PDOConnection = 15;
|
|
||||||
|
|
||||||
/* API token */
|
|
||||||
// Token inexistant ou faux
|
|
||||||
const TokenError = 16;
|
|
||||||
|
|
||||||
const PermissionError = 17;
|
|
||||||
|
|
||||||
/* Erreur d'UPLOAD */
|
|
||||||
const UploadError = 18;
|
|
||||||
|
|
||||||
// Mauvais format de fichier
|
|
||||||
const FormatError = 19;
|
|
||||||
|
|
||||||
/* Erreur de contenu */
|
|
||||||
// Aucune donnée trouvée
|
|
||||||
const NoMatchFound = 20;
|
|
||||||
|
|
||||||
/* Erreur de vues */
|
|
||||||
// Mauvais chemin de template
|
|
||||||
const UnknownTemplate = 21;
|
|
||||||
|
|
||||||
/* Erreur de l'ORM */
|
|
||||||
// Table n'existe pas
|
|
||||||
const UnknownTable = 22;
|
|
||||||
|
|
||||||
// Pas permissions de lire le schéma
|
|
||||||
const NotAllowedSchema = 23;
|
|
||||||
|
|
||||||
/* Erreur au niveau javascript */
|
|
||||||
//const JavascriptError = 20; // -> géré en js
|
|
||||||
|
|
||||||
|
|
||||||
/* EXPLICITE UN CODE D'ERREUR
|
/* EXPLICITE UN CODE D'ERREUR
|
||||||
*
|
*
|
||||||
* @error<Integer> Code d'erreur
|
|
||||||
*
|
|
||||||
* @return explicit<String> Description explicite du code d'erreur
|
* @return explicit<String> Description explicite du code d'erreur
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function explicit($error){
|
public function explicit(){
|
||||||
switch($error){
|
switch($this->error){
|
||||||
case self::Success: return "Tout s'est bien deroulé."; break;
|
case Err::Success: return $this->Success(); break;
|
||||||
|
case Err::ParsingFailed: return $this->ParsingFailed(); break;
|
||||||
|
case Err::UnreachableResource: return $this->UnreachableResource(); break;
|
||||||
|
case Err::UploadError: return $this->UploadError(); break;
|
||||||
|
case Err::FormatError: return $this->FormatError(); break;
|
||||||
|
case Err::TokenError: return $this->TokenError(); break;
|
||||||
|
case Err::PermissionError: return $this->PermissionError(); break;
|
||||||
|
case Err::DisabledModule: return $this->DisabledModule(); break;
|
||||||
|
case Err::MissingPath: return $this->MissingPath(); break;
|
||||||
|
case Err::WrongPathModule: return $this->WrongPathModule(); break;
|
||||||
|
case Err::UnknownModule: return $this->UnknownModule(); break;
|
||||||
|
case Err::UnknownMethod: return $this->UnknownMethod(); break;
|
||||||
|
case Err::UncallableModule: return $this->UncallableModule(); break;
|
||||||
|
case Err::UncallableMethod: return $this->UncallableMethod(); break;
|
||||||
|
case Err::UnknownHttpMethod: return $this->UnknownHttpMethod(); break;
|
||||||
|
case Err::ConfigError: return $this->ConfigError(); break;
|
||||||
|
case Err::MissingParam: return $this->MissingParam(); break;
|
||||||
|
case Err::WrongParam: return $this->WrongParam(); break;
|
||||||
|
case Err::ModuleError: return $this->ModuleError(); break;
|
||||||
|
case Err::PDOConnection: return $this->PDOConnection(); break;
|
||||||
|
case Err::WrongPathRepo: return $this->WrongPathRepo(); break;
|
||||||
|
case Err::UnknownRepo: return $this->UnknownRepo(); break;
|
||||||
|
case Err::RepoError: return $this->RepoError(); break;
|
||||||
|
case Err::UnknownTable: return $this->UnknownTable(); break;
|
||||||
|
case Err::NotAllowedSchema: return $this->NotAllowedSchema(); break;
|
||||||
|
case Err::NoMatchFound: return $this->NoMatchFound(); break;
|
||||||
|
case Err::UnknownTemplate: return $this->UnknownTemplate(); break;
|
||||||
|
case Err::UnknownAddress: return $this->UnknownAddress(); break;
|
||||||
|
case Err::UnknownError: return $this->UnknownError(); break;
|
||||||
|
|
||||||
case self::ParsingFailed: return "La lecture du fichier JSON ou XML a echouée."; break;
|
default: return $this->UnknownDebugError(); break;
|
||||||
|
|
||||||
case self::InvalidFlags: return "Les spécifications (drapeaux) sont incorrects."; break;
|
|
||||||
case self::UnreachableResource: return "La ressource n'existe pas (404)."; break;
|
|
||||||
case self::DisabledModule: return "Vous n'avez pas accès au module demandé."; break;
|
|
||||||
case self::MissingPath: return "Le chemin de délégation n'a pas été renseigné."; break;
|
|
||||||
case self::WrongPathModule: return "Le chemin de délégation est incorrect ('nomModule/nomMethode')."; break;
|
|
||||||
case self::WrongPathRepo: return "Le chemin de délégation est incorrect ('nomRepo/nomMethode')."; break;
|
|
||||||
case self::UnknownModule: return "Le module n'existe pas."; break;
|
|
||||||
case self::UnknownRepo: return "Le repo n'existe pas."; break;
|
|
||||||
case self::UnknownMethod: return "Le méthode n'existe pas."; break;
|
|
||||||
case self::UncallableMethod: return "Le méthode n'est pas amorçable."; break;
|
|
||||||
|
|
||||||
case self::ParamError: return "Un ou plusieurs paramètres sont manquants ou incorrects."; break;
|
|
||||||
case self::ModuleError: return "Erreur lors du traitement du module."; break;
|
|
||||||
case self::RepoError: return "Erreur lors du traitement du repo."; break;
|
|
||||||
|
|
||||||
case self::PDOConnection: return "La connexion avec la base de données a echouée."; break;
|
|
||||||
|
|
||||||
case self::TokenError: return "Le token de connection est absent, érroné ou expiré."; break;
|
|
||||||
case self::PermissionError: return "Vous n'avez pas la permission d'effectuer cette action."; break;
|
|
||||||
case self::UploadError: return "Une erreur d'upload est survenue."; break;
|
|
||||||
case self::FormatError: return "Le fichier n'est pas au bon format."; break;
|
|
||||||
|
|
||||||
case self::NoMatchFound: return "Aucun résultat correspondant à la requête."; break;
|
|
||||||
|
|
||||||
case self::UnknownTemplate: return "Modèle inconnu."; break;
|
|
||||||
|
|
||||||
default: return "Erreur inconnue..."; break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erreur inconnue
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function setHttpCode($error){
|
private function Success(){
|
||||||
http_response_code( $error == self::Success ? 200 : 417 );
|
return 'all right';
|
||||||
|
}private function ParsingFailed(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return $this->arguments[0].' parsing failed';
|
||||||
|
else
|
||||||
|
return 'parsing failed';
|
||||||
|
}private function UnreachableResource(){
|
||||||
|
return 'unreachable resource';
|
||||||
|
}private function UploadError(){
|
||||||
|
return 'upload error';
|
||||||
|
}private function FormatError(){
|
||||||
|
return 'format error';
|
||||||
|
}private function TokenError(){
|
||||||
|
return 'bad or expired token';
|
||||||
|
}private function PermissionError(){
|
||||||
|
return 'permission error';
|
||||||
|
}private function DisabledModule(){
|
||||||
|
return 'disabled module';
|
||||||
|
}private function MissingPath(){
|
||||||
|
return 'missing path';
|
||||||
|
}private function WrongPathModule(){
|
||||||
|
return 'wrong module\'s path';
|
||||||
|
}private function UnknownModule(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return 'unknown module \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'unknown module';
|
||||||
|
}private function UnknownMethod(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return 'unknown method \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'unknown method';
|
||||||
|
}private function UncallableModule(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return 'uncallable module \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'uncallable module';
|
||||||
|
}private function UncallableMethod(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return 'uncallable method \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'uncallable method';
|
||||||
|
}private function UnknownHttpMethod(){
|
||||||
|
return 'unknown HTTP method';
|
||||||
|
}private function ConfigError(){
|
||||||
|
return 'configuration error';
|
||||||
|
}private function MissingParam(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
return 'missing param \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'missing param';
|
||||||
|
}private function WrongParam(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
if( count($this->arguments) > 1 )
|
||||||
|
return 'wrong param \''.$this->arguments[0].'\' expected to be of type \''.$this->arguments[1].'\'';
|
||||||
|
else
|
||||||
|
return 'wrong param \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'wrong param';
|
||||||
|
}private function ModuleError(){
|
||||||
|
return 'module error';
|
||||||
|
}private function PDOConnection(){
|
||||||
|
return 'database error';
|
||||||
|
}private function WrongPathRepo(){
|
||||||
|
return 'wrong repository\'s path';
|
||||||
|
}private function UnknownRepo(){
|
||||||
|
return 'unknown repository';
|
||||||
|
}private function RepoError(){
|
||||||
|
return 'repository error';
|
||||||
|
}private function UnknownTable(){
|
||||||
|
return 'unknown table';
|
||||||
|
}private function NotAllowedSchema(){
|
||||||
|
return 'schema browsing not allowed';
|
||||||
|
}private function NoMatchFound(){
|
||||||
|
return 'no match found';
|
||||||
|
}private function UnknownTemplate(){
|
||||||
|
return 'unknown template';
|
||||||
|
}private function UnknownAddress(){
|
||||||
|
return 'unknown';
|
||||||
|
}private function UnknownError(){
|
||||||
|
return 'unknown error';
|
||||||
|
}private function UnknownDebugError(){
|
||||||
|
return 'unknown debug error';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function setHttpCode(){
|
||||||
|
http_response_code( $this->error == Err::Success ? 200 : 417 );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -0,0 +1,198 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace http\core;
|
||||||
|
|
||||||
|
|
||||||
|
class HttpRequest{
|
||||||
|
|
||||||
|
/* [0] Constants
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Content-Type */
|
||||||
|
const CT_BINARY = 0; // unknown
|
||||||
|
const CT_TEXT = 1;
|
||||||
|
const CT_JSON = 2;
|
||||||
|
const CT_YAML = 3;
|
||||||
|
const CT_MULTIPART_FORM_DATA = 4;
|
||||||
|
const CT_X_WWW_FORM_URLENCODED = 5;
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] Attributes
|
||||||
|
=========================================================*/
|
||||||
|
private $uri;
|
||||||
|
private $headers;
|
||||||
|
private $method;
|
||||||
|
private $postdata;
|
||||||
|
private $getdata;
|
||||||
|
|
||||||
|
private $type;
|
||||||
|
private $body;
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Constructs an HTTP Request based on environment
|
||||||
|
*
|
||||||
|
* @return instance<HttpRequest> auto-filled HTTP Request
|
||||||
|
*
|
||||||
|
=========================================================*/
|
||||||
|
public function __construct(){
|
||||||
|
/* [1] Define URI & Status Code & method
|
||||||
|
=========================================================*/
|
||||||
|
$this->uri = $_SERVER['REQUEST_URI'];
|
||||||
|
$this->method = $_SERVER['REQUEST_METHOD'];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Define headers
|
||||||
|
=========================================================*/
|
||||||
|
$this->headers = \getallheaders();
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] Define default datasets (GET, POST)
|
||||||
|
=========================================================*/
|
||||||
|
$this->getdata = $_GET;
|
||||||
|
$this->postdata = $_POST;
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] Define BODY & its type
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Default: set plain/text body */
|
||||||
|
$this->body = \file_get_contents('php://input');
|
||||||
|
|
||||||
|
/* (2) Fetch content type */
|
||||||
|
$this->type = self::getContentType($this->headers['Content-Type']);
|
||||||
|
|
||||||
|
|
||||||
|
/* [5] Parse BODY data -> POST
|
||||||
|
=========================================================*/
|
||||||
|
$this->parseBody();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* GET CONSTANT CT_* FROM `Content-Type` HEADER
|
||||||
|
*
|
||||||
|
* @pContentType<String> `Content-Type` header value
|
||||||
|
*
|
||||||
|
* @return type<int> Constant value
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static function getContentType($pContentType=null){
|
||||||
|
/* [1] Checks argv
|
||||||
|
=========================================================*/
|
||||||
|
if( is_null($pContentType) )
|
||||||
|
$pContentType = $_SERVER['CONTENT_TYPE'];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Checks types
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Form Data Types
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) multipart/form-data */
|
||||||
|
if( preg_match('/^multipart\/form\-data; boundary=(.+)$/i', $pContentType) )
|
||||||
|
return self::CT_MULTIPART_FORM_DATA;
|
||||||
|
|
||||||
|
/* (2) application/x-www-form-urlencoded */
|
||||||
|
if( preg_match('/^application\/x\-www\-form\-urlencoded/i', $pContentType) )
|
||||||
|
return self::CT_X_WWW_FORM_URLENCODED;
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) Data types
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Basic JSON content type */
|
||||||
|
if( preg_match('/^application\/json/i', $pContentType) )
|
||||||
|
return self::CT_JSON;
|
||||||
|
|
||||||
|
/* (2) Basic YAML content type */
|
||||||
|
if( preg_match('/^application\/yaml/i', $pContentType) )
|
||||||
|
return self::CT_YAML;
|
||||||
|
|
||||||
|
/* (3) Basic TEXT content type */
|
||||||
|
if( preg_match('/text\/[a-z]+/', $pContentType) )
|
||||||
|
return self::CT_TEXT;
|
||||||
|
|
||||||
|
|
||||||
|
/* (3) Default Type
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
return self::CT_BINARY;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* PARSES BODY DATA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private function parseBody(){
|
||||||
|
/* [1] If empty body -> do nothing
|
||||||
|
=========================================================*/
|
||||||
|
if( strlen($this->body) === 0 )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Management for each ContentType
|
||||||
|
=========================================================*/
|
||||||
|
switch($this->type){
|
||||||
|
|
||||||
|
/* (1) multipart/form-data -> parse for not-POST methods
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
case self::CT_MULTIPART_FORM_DATA:
|
||||||
|
/* (1) Fetch the boundary */
|
||||||
|
if( !preg_match('/boundary=(.+)$/i', $this->headers['Content-Type'], $match) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$boundary = $match[1];
|
||||||
|
|
||||||
|
/* (2) Break body into parts */
|
||||||
|
$splitter = "/(?:\n|\r\n|--)*$boundary(?:\n|\r\n|--)?/im";
|
||||||
|
$parts = preg_split($splitter, $this->body);
|
||||||
|
|
||||||
|
/* (3) Process parts */
|
||||||
|
foreach($parts as $part)
|
||||||
|
if( preg_match('/^Content\-Disposition: form\-data; name=\"([^"]+)\"(?:\n|\r\n){2}(.+)$/mi', $part, $match) )
|
||||||
|
$this->postdata[$match[1]] = $match[2];
|
||||||
|
|
||||||
|
/* (4) Erases body */
|
||||||
|
$this->body = '';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) application/x-www-form-urlencoded -> parse for not-POST methods
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
case self::CT_X_WWW_FORM_URLENCODED:
|
||||||
|
/* Auto parse builtin-php function */
|
||||||
|
parse_str($this->body, $this->postdata);
|
||||||
|
|
||||||
|
/* Erases body */
|
||||||
|
$this->body = '';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/* (3) application/json -> parse if no error
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
case self::CT_JSON:
|
||||||
|
/* (1) Decode body content */
|
||||||
|
$decoded = json_decode($this->body, true);
|
||||||
|
|
||||||
|
/* (2) If error -> do nothing */
|
||||||
|
if( is_null($decoded) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* (3) Parse body into body */
|
||||||
|
$this->body = $decoded;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/* (4) application/yaml -> parse if no error
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
case self::CT_YAML:
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function BODY(){ return $this->body; }
|
||||||
|
public function POST(){ return $this->postdata; }
|
||||||
|
public function GET(){ return $this->getdata; }
|
||||||
|
public function HEADERS(){ return $this->headers; }
|
||||||
|
public function METHOD(){ return $this->method; }
|
||||||
|
public function URI(){ return $this->uri; }
|
||||||
|
}
|
|
@ -3,10 +3,11 @@
|
||||||
namespace viewer\core;
|
namespace viewer\core;
|
||||||
|
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class Viewer{
|
class Viewer{
|
||||||
|
|
||||||
public $error = Error::Success;
|
public $error;
|
||||||
|
|
||||||
|
|
||||||
private $template;
|
private $template;
|
||||||
|
@ -25,9 +26,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct($template, $args){
|
public function __construct($template, $args){
|
||||||
|
$this->error = new Error(Err::Success);
|
||||||
|
|
||||||
|
|
||||||
// Si pas parametre manquant, on quitte
|
// Si pas parametre manquant, on quitte
|
||||||
if( $template == null ){
|
if( $template == null ){
|
||||||
$this->error = Error::MissingPath;
|
$this->error = new Error(Err::MissingPath);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +98,7 @@
|
||||||
/* [1] On vérifie le format
|
/* [1] On vérifie le format
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !preg_match('/^(\w+)\.(\w+)$/i', $template, $match) ){
|
if( !preg_match('/^(\w+)\.(\w+)$/i', $template, $match) ){
|
||||||
$this->error = Error::ParamError;
|
$this->error = new Error(Err::ParamError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,13 +110,13 @@
|
||||||
|
|
||||||
/* (1) On vérifie que la classe existe */
|
/* (1) On vérifie que la classe existe */
|
||||||
if( !class_exists($class) ){
|
if( !class_exists($class) ){
|
||||||
$this->error = Error::UnknownTemplate;
|
$this->error = new Error(Err::UnknownTemplate);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (2) On vérifie que la méthode existe */
|
/* (2) On vérifie que la méthode existe */
|
||||||
if( !method_exists($class, $method) ){
|
if( !method_exists($class, $method) ){
|
||||||
$this->error = Error::UnknownTemplate;
|
$this->error = new Error(Err::UnknownTemplate);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace viewer\view\group;
|
namespace viewer\view\group;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
|
||||||
class group_choice{
|
class group_choice{
|
||||||
|
@ -24,11 +25,11 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function($class){
|
$twig->addFunction(new \Twig_Function('f_clusters', function($class){
|
||||||
/* (1) On récupère les groupes */
|
/* (1) On récupère les groupes */
|
||||||
$getClustersReq = new ModuleRequest('clusterDefault/getAll', ['class' => $class]);
|
$getClustersReq = new Request('clusterDefault/getAll', ['class' => $class]);
|
||||||
$getClusters = $getClustersReq->dispatch();
|
$getClusters = $getClustersReq->dispatch();
|
||||||
|
|
||||||
/* (2) si erreur, on retourne rien par défaut */
|
/* (2) si erreur, on retourne rien par défaut */
|
||||||
if( $getClusters->error != Error::Success )
|
if( $getClusters->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
/* (3) On enregistre le résultat */
|
/* (3) On enregistre le résultat */
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
namespace viewer\view\group;
|
namespace viewer\view\group;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
|
use \error\core\Err;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
|
||||||
|
@ -16,14 +17,14 @@
|
||||||
return Viewer::$htmlError;
|
return Viewer::$htmlError;
|
||||||
|
|
||||||
/* (2) On récupère le groupe */
|
/* (2) On récupère le groupe */
|
||||||
$checktypeRequest = new ModuleRequest('clusterDefault/getById', [
|
$checktypeRequest = new Request('clusterDefault/getById', [
|
||||||
'id_cluster' => $params['id_cluster'],
|
'id_cluster' => $params['id_cluster'],
|
||||||
'class' => $params['class']
|
'class' => $params['class']
|
||||||
]);
|
]);
|
||||||
$checktypeResponse = $checktypeRequest->dispatch();
|
$checktypeResponse = $checktypeRequest->dispatch();
|
||||||
|
|
||||||
/* (3) Si on ne le trouve pas, on retourne une erreur */
|
/* (3) Si on ne le trouve pas, on retourne une erreur */
|
||||||
if( $checktypeResponse->error != Error::Success )
|
if( $checktypeResponse->error->get() != Err::Success )
|
||||||
return Viewer::$htmlError;
|
return Viewer::$htmlError;
|
||||||
|
|
||||||
/* (4) On récupère les données du groupe */
|
/* (4) On récupère les données du groupe */
|
||||||
|
@ -52,14 +53,14 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
||||||
/* (1) On exécute la requête */
|
/* (1) On exécute la requête */
|
||||||
$getmembersRequest = new ModuleRequest('clusterDefault/getMembers', [
|
$getmembersRequest = new Request('clusterDefault/getMembers', [
|
||||||
'id_cluster' => $id_cluster,
|
'id_cluster' => $id_cluster,
|
||||||
'class' => $class
|
'class' => $class
|
||||||
]);
|
]);
|
||||||
$getmembersResponse = $getmembersRequest->dispatch();
|
$getmembersResponse = $getmembersRequest->dispatch();
|
||||||
|
|
||||||
/* (2) Si erreur, on retourne rien par défaut */
|
/* (2) Si erreur, on retourne rien par défaut */
|
||||||
if( $getmembersResponse->error != Error::Success )
|
if( $getmembersResponse->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
/* (3) On récupère la liste des UID uniquement */
|
/* (3) On récupère la liste des UID uniquement */
|
||||||
|
@ -74,12 +75,12 @@
|
||||||
if( $class == 0 ){
|
if( $class == 0 ){
|
||||||
|
|
||||||
/* (2) On exécute la requête */
|
/* (2) On exécute la requête */
|
||||||
$getusersRequest = new ModuleRequest('userDefault/getAll');
|
$getusersRequest = new Request('userDefault/getAll');
|
||||||
// On recupere la reponse
|
// On recupere la reponse
|
||||||
$getusersResponse = $getusersRequest->dispatch();
|
$getusersResponse = $getusersRequest->dispatch();
|
||||||
|
|
||||||
/* (3) si erreur, on affiche l'explicitation */
|
/* (3) si erreur, on affiche l'explicitation */
|
||||||
if( $getusersResponse->error != Error::Success )
|
if( $getusersResponse->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
/* (4) On récupère la liste des utilisateurs */
|
/* (4) On récupère la liste des utilisateurs */
|
||||||
|
@ -97,12 +98,12 @@
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
/* (2) On exécute la requête */
|
/* (2) On exécute la requête */
|
||||||
$getmachinesRequest = new ModuleRequest('machineDefault/getAll');
|
$getmachinesRequest = new Request('machineDefault/getAll');
|
||||||
// On recupere la reponse
|
// On recupere la reponse
|
||||||
$getmachinesResponse = $getmachinesRequest->dispatch();
|
$getmachinesResponse = $getmachinesRequest->dispatch();
|
||||||
|
|
||||||
/* (3) si erreur, on affiche l'explicitation */
|
/* (3) si erreur, on affiche l'explicitation */
|
||||||
if( $getmachinesResponse->error != Error::Success )
|
if( $getmachinesResponse->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
/* (4) On récupère la liste des machines */
|
/* (4) On récupère la liste des machines */
|
||||||
|
|
|
@ -2,8 +2,9 @@
|
||||||
|
|
||||||
namespace viewer\view\group;
|
namespace viewer\view\group;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
use \error\core\Err;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
|
||||||
class permission{
|
class permission{
|
||||||
|
@ -32,14 +33,14 @@
|
||||||
/* [3] Store functions
|
/* [3] Store functions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
||||||
$request = new ModuleRequest('clusterDefault/getAll', [
|
$request = new Request('clusterDefault/getAll', [
|
||||||
'class' => 1
|
'class' => 1
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$answer = $request->dispatch();
|
$answer = $request->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $answer->error != Error::Success )
|
if( $answer->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $answer->get('clusters');
|
return $answer->get('clusters');
|
||||||
|
@ -47,7 +48,7 @@
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_nbmachines', function($id_cluster){
|
$twig->addFunction(new \Twig_Function('f_nbmachines', function($id_cluster){
|
||||||
$machineReq = new ModuleRequest('clusterDefault/getMembers', [
|
$machineReq = new Request('clusterDefault/getMembers', [
|
||||||
'id_cluster' => (int) $id_cluster,
|
'id_cluster' => (int) $id_cluster,
|
||||||
'class' => 1
|
'class' => 1
|
||||||
]);
|
]);
|
||||||
|
@ -55,26 +56,26 @@
|
||||||
$machineRes = $machineReq->dispatch();
|
$machineRes = $machineReq->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $machineRes->error != Error::Success )
|
if( $machineRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return count($machineRes->get('members'));
|
return count($machineRes->get('members'));
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_permissions', function(){
|
$twig->addFunction(new \Twig_Function('f_permissions', function(){
|
||||||
$permReq = new ModuleRequest('clusterDefault/getPermissions', []);
|
$permReq = new Request('clusterDefault/getPermissions', []);
|
||||||
|
|
||||||
$permRes = $permReq->dispatch();
|
$permRes = $permReq->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $permRes->error != Error::Success )
|
if( $permRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $permRes->get('permissions');
|
return $permRes->get('permissions');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_userclusters', function($id_cluster, $id_permission){
|
$twig->addFunction(new \Twig_Function('f_userclusters', function($id_cluster, $id_permission){
|
||||||
$ucReq = new ModuleRequest('clusterDefault/getAuthenticatedClusters', [
|
$ucReq = new Request('clusterDefault/getAuthenticatedClusters', [
|
||||||
'id_target' => $id_cluster,
|
'id_target' => $id_cluster,
|
||||||
'id_action' => $id_permission
|
'id_action' => $id_permission
|
||||||
]);
|
]);
|
||||||
|
@ -82,7 +83,7 @@
|
||||||
$ucRes = $ucReq->dispatch();
|
$ucRes = $ucReq->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $ucRes->error != Error::Success )
|
if( $ucRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $ucRes->get('clusters');
|
return $ucRes->get('clusters');
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace viewer\view\group;
|
namespace viewer\view\group;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
use \error\core\Err;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
|
||||||
class view{
|
class view{
|
||||||
|
@ -31,11 +32,11 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function($class){
|
$twig->addFunction(new \Twig_Function('f_clusters', function($class){
|
||||||
/* (1) On récupère les groupes */
|
/* (1) On récupère les groupes */
|
||||||
$getClustersReq = new ModuleRequest('clusterDefault/getAll', ['class' => $class]);
|
$getClustersReq = new Request('clusterDefault/getAll', ['class' => $class]);
|
||||||
$getClusters = $getClustersReq->dispatch();
|
$getClusters = $getClustersReq->dispatch();
|
||||||
|
|
||||||
/* (2) si erreur, on retourne rien par défaut */
|
/* (2) si erreur, on retourne rien par défaut */
|
||||||
if( $getClusters->error != Error::Success )
|
if( $getClusters->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
/* (3) On enregistre le résultat */
|
/* (3) On enregistre le résultat */
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_members', function($id_cluster, $class){
|
$twig->addFunction(new \Twig_Function('f_members', function($id_cluster, $class){
|
||||||
$membersReq = new ModuleRequest('clusterDefault/getMembers', [
|
$membersReq = new Request('clusterDefault/getMembers', [
|
||||||
'id_cluster' => (int) $id_cluster,
|
'id_cluster' => (int) $id_cluster,
|
||||||
'class' => $class
|
'class' => $class
|
||||||
]);
|
]);
|
||||||
|
@ -51,7 +52,7 @@
|
||||||
$membersRes = $membersReq->dispatch();
|
$membersRes = $membersReq->dispatch();
|
||||||
//
|
//
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $membersRes->error != Error::Success )
|
if( $membersRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $membersRes->get('members');
|
return $membersRes->get('members');
|
||||||
|
|
|
@ -2,8 +2,9 @@
|
||||||
|
|
||||||
namespace viewer\view\history;
|
namespace viewer\view\history;
|
||||||
|
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class view{
|
class view{
|
||||||
|
|
||||||
|
@ -24,12 +25,12 @@
|
||||||
/* [3] Store functions
|
/* [3] Store functions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_history', function(){
|
$twig->addFunction(new \Twig_Function('f_history', function(){
|
||||||
$req = new ModuleRequest('historyDefault/getAll', []);
|
$req = new Request('historyDefault/getAll', []);
|
||||||
|
|
||||||
$res = $req->dispatch();
|
$res = $req->dispatch();
|
||||||
|
|
||||||
// si erreur, on retourne rien par défaut
|
// si erreur, on retourne rien par défaut
|
||||||
if( $res->error != Error::Success )
|
if( $res->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $res->get('history');
|
return $res->get('history');
|
||||||
|
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
namespace viewer\view\machine;
|
namespace viewer\view\machine;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class groups{
|
class groups{
|
||||||
|
|
||||||
|
@ -31,14 +32,14 @@
|
||||||
/* [3] Store functions
|
/* [3] Store functions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
||||||
$request = new ModuleRequest('clusterDefault/getAll', [
|
$request = new Request('clusterDefault/getAll', [
|
||||||
'class' => 1
|
'class' => 1
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$answer = $request->dispatch();
|
$answer = $request->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $answer->error != Error::Success )
|
if( $answer->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $answer->get('clusters');
|
return $answer->get('clusters');
|
||||||
|
@ -46,14 +47,14 @@
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_machines', function($id_cluster){
|
$twig->addFunction(new \Twig_Function('f_machines', function($id_cluster){
|
||||||
$usersReq = new ModuleRequest('clusterDefault/getMembers', [
|
$usersReq = new Request('clusterDefault/getMembers', [
|
||||||
'id_cluster' => (int) $id_cluster,
|
'id_cluster' => (int) $id_cluster,
|
||||||
'class' => 1
|
'class' => 1
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$usersRes = $usersReq->dispatch();
|
$usersRes = $usersReq->dispatch();
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $usersRes->error != Error::Success )
|
if( $usersRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $usersRes->get('members');
|
return $usersRes->get('members');
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace viewer\view\machine;
|
namespace viewer\view\machine;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class view{
|
class view{
|
||||||
|
|
||||||
|
@ -30,24 +30,24 @@
|
||||||
/* [3] Store functions
|
/* [3] Store functions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_machines', function(){
|
$twig->addFunction(new \Twig_Function('f_machines', function(){
|
||||||
$request = new ModuleRequest('machineDefault/getAll'); // On utilise la methode 'getAll' du module 'machineDefault'
|
$request = new Request('machineDefault/getAll'); // On utilise la methode 'getAll' du module 'machineDefault'
|
||||||
$answer = $request->dispatch(); // On recupere la reponse
|
$answer = $request->dispatch(); // On recupere la reponse
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $answer->error != Error::Success )
|
if( $answer->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $answer->get('machines');
|
return $answer->get('machines');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function($id_machine){
|
$twig->addFunction(new \Twig_Function('f_clusters', function($id_machine){
|
||||||
$clustersReq = new ModuleRequest('machineDefault/getClusters', [
|
$clustersReq = new Request('machineDefault/getClusters', [
|
||||||
'id_machine' => (int) $id_machine
|
'id_machine' => (int) $id_machine
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$clustersRes = $clustersReq->dispatch();
|
$clustersRes = $clustersReq->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $clustersRes->error != Error::Success )
|
if( $clustersRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $clustersRes->get('clusters');
|
return $clustersRes->get('clusters');
|
||||||
|
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
namespace viewer\view\user;
|
namespace viewer\view\user;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class groups{
|
class groups{
|
||||||
|
|
||||||
|
@ -31,14 +32,14 @@
|
||||||
/* [3] Store functions
|
/* [3] Store functions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
$twig->addFunction(new \Twig_Function('f_clusters', function(){
|
||||||
$request = new ModuleRequest('clusterDefault/getAll', [
|
$request = new Request('clusterDefault/getAll', [
|
||||||
'class' => 0
|
'class' => 0
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$answer = $request->dispatch();
|
$answer = $request->dispatch();
|
||||||
|
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $answer->error != Error::Success )
|
if( $answer->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $answer->get('clusters');
|
return $answer->get('clusters');
|
||||||
|
@ -46,14 +47,14 @@
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_users', function($id_cluster){
|
$twig->addFunction(new \Twig_Function('f_users', function($id_cluster){
|
||||||
$usersReq = new ModuleRequest('clusterDefault/getMembers', [
|
$usersReq = new Request('clusterDefault/getMembers', [
|
||||||
'id_cluster' => (int) $id_cluster,
|
'id_cluster' => (int) $id_cluster,
|
||||||
'class' => 0
|
'class' => 0
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$usersRes = $usersReq->dispatch();
|
$usersRes = $usersReq->dispatch();
|
||||||
// si erreur, on affiche rien par défaut
|
// si erreur, on affiche rien par défaut
|
||||||
if( $usersRes->error != Error::Success )
|
if( $usersRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $usersRes->get('members');
|
return $usersRes->get('members');
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace viewer\view\user;
|
namespace viewer\view\user;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
use \error\core\Error;
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
class view{
|
class view{
|
||||||
|
|
||||||
|
@ -32,22 +33,22 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$twig->addFunction(new \Twig_Function('f_users', function(){
|
$twig->addFunction(new \Twig_Function('f_users', function(){
|
||||||
|
|
||||||
$request = new ModuleRequest('userDefault/getAll'); // On utilise la methode 'getAll' du module 'userDefault'
|
$request = new Request('userDefault/getAll'); // On utilise la methode 'getAll' du module 'userDefault'
|
||||||
$answer = $request->dispatch(); // On recupere la reponse
|
$answer = $request->dispatch(); // On recupere la reponse
|
||||||
|
|
||||||
// si erreur, on affiche rien
|
// si erreur, on affiche rien
|
||||||
if( $answer->error != Error::Success )
|
if( $answer->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $answer->get('users');
|
return $answer->get('users');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$twig->addFunction(new \Twig_Function('f_clusters', function($id_user){
|
$twig->addFunction(new \Twig_Function('f_clusters', function($id_user){
|
||||||
$clustersReq = new ModuleRequest('userDefault/getClusters', [ 'id_user' => $id_user ]);
|
$clustersReq = new Request('userDefault/getClusters', [ 'id_user' => $id_user ]);
|
||||||
$clustersRes = $clustersReq->dispatch();
|
$clustersRes = $clustersReq->dispatch();
|
||||||
|
|
||||||
/* (2) Gestion si erreur */
|
/* (2) Gestion si erreur */
|
||||||
if( $clustersRes->error != Error::Success )
|
if( $clustersRes->error->get() != Err::Success )
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return $clustersRes->get('clusters');
|
return $clustersRes->get('clusters');
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
"module": {
|
"module": {
|
||||||
"method": {
|
"POST::method": {
|
||||||
"description": "Test de l'API",
|
"description": "Test de l'API",
|
||||||
"permissions": ["warehouse"],
|
"permissions": [],
|
||||||
"parameters": {}
|
"parameters": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"markdown": {
|
"POST::markdown": {
|
||||||
"description": "Retourne une description en markdown des différents modules de l'API",
|
"description": "Retourne une description en markdown des différents modules de l'API",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"options": { "download": true },
|
"options": { "download": true },
|
||||||
"parameters": {}
|
"parameters": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"apiBlueprint": {
|
"POST::apiBlueprint": {
|
||||||
"description": "Retourne une documentation de l'API au format API Blueprint.",
|
"description": "Retourne une documentation de l'API au format API Blueprint.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"options": { "download": true },
|
"options": { "download": true },
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
"upload": {
|
"upload": {
|
||||||
|
|
||||||
"call_log": {
|
"POST::call_log": {
|
||||||
"description": "Upload d'un journal d'appel au format .xml. Retour des données de call_log/unserialize",
|
"description": "Upload d'un journal d'appel au format .xml. Retour des données de call_log/unserialize",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
|
|
||||||
"download": {
|
"download": {
|
||||||
|
|
||||||
"multiple": {
|
"POST::multiple": {
|
||||||
"description": "Download des données relatives aux sujets donnés.",
|
"description": "Download des données relatives aux sujets donnés.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
"options": { "download": true },
|
"options": { "download": true },
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
|
|
||||||
|
|
||||||
"authentificationDefault": {
|
"authentificationDefault": {
|
||||||
"warehouse": {
|
"POST::warehouse": {
|
||||||
"description": "Connexion de premier niveau : entrepot.",
|
"description": "Connexion de premier niveau : entrepot.",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"admin": {
|
"POST::admin": {
|
||||||
"description": "Connexion de second niveau : administrateur.",
|
"description": "Connexion de second niveau : administrateur.",
|
||||||
"permissions": ["warehouse"],
|
"permissions": ["warehouse"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
|
|
||||||
"userDefault": {
|
"userDefault": {
|
||||||
|
|
||||||
"create": {
|
"POST::create": {
|
||||||
"description": "Création d'un nouvel utilisateur.",
|
"description": "Création d'un nouvel utilisateur.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"link": {
|
"POST::link": {
|
||||||
"description": "Ajout d'un utilisateur à un groupe.",
|
"description": "Ajout d'un utilisateur à un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"unlink": {
|
"POST::unlink": {
|
||||||
"description": "Retrait d'un utilisateur d'un groupe",
|
"description": "Retrait d'un utilisateur d'un groupe",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"search": {
|
"POST::search": {
|
||||||
"description": "Recherche d'un utilisateur par mots-clés.",
|
"description": "Recherche d'un utilisateur par mots-clés.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getAll": {
|
"POST::getAll": {
|
||||||
"description": "Liste de tous les utilisateurs",
|
"description": "Liste de tous les utilisateurs",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {},
|
"parameters": {},
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getById": {
|
"POST::getById": {
|
||||||
"description": "Retourne un utilisateur spécifique.",
|
"description": "Retourne un utilisateur spécifique.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getByCode": {
|
"POST::getByCode": {
|
||||||
"description": "Retourne un utilisateur de Code RFID donné.",
|
"description": "Retourne un utilisateur de Code RFID donné.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getByUsername": {
|
"POST::getByUsername": {
|
||||||
"description": "Retourne un utilisateur d'identifiant donné.",
|
"description": "Retourne un utilisateur d'identifiant donné.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getClusters": {
|
"POST::getClusters": {
|
||||||
"description": "Retourne les groupes d'un utilisateur.",
|
"description": "Retourne les groupes d'un utilisateur.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"edit": {
|
"POST::edit": {
|
||||||
"description": "Modifie les attributs d'un utilisateur.",
|
"description": "Modifie les attributs d'un utilisateur.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -205,7 +205,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"delete": {
|
"POST::delete": {
|
||||||
"description": "Suppression d'un utilisateur.",
|
"description": "Suppression d'un utilisateur.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -221,7 +221,7 @@
|
||||||
|
|
||||||
"machineDefault": {
|
"machineDefault": {
|
||||||
|
|
||||||
"sync": {
|
"POST::sync": {
|
||||||
"description": "Synchronisation d'une machine.",
|
"description": "Synchronisation d'une machine.",
|
||||||
"permissions": ["warehouse"],
|
"permissions": ["warehouse"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -234,7 +234,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"init": {
|
"POST::init": {
|
||||||
"description": "Données d'initialisation d'une machine.",
|
"description": "Données d'initialisation d'une machine.",
|
||||||
"permissions": ["warehouse"],
|
"permissions": ["warehouse"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -245,7 +245,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"create": {
|
"POST::create": {
|
||||||
"description": "Création d'une nouvelle machine.",
|
"description": "Création d'une nouvelle machine.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -256,7 +256,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"link": {
|
"POST::link": {
|
||||||
"description": "Ajout d'une machine à un groupe.",
|
"description": "Ajout d'une machine à un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -266,7 +266,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"unlink": {
|
"POST::unlink": {
|
||||||
"description": "Retrait d'une machine d'un groupe.",
|
"description": "Retrait d'une machine d'un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -276,7 +276,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"search": {
|
"POST::search": {
|
||||||
"description": "Recherche une machine par mots-clés.",
|
"description": "Recherche une machine par mots-clés.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -287,7 +287,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getAll": {
|
"POST::getAll": {
|
||||||
"description": "Retourne la liste de toutes les machines.",
|
"description": "Retourne la liste de toutes les machines.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {},
|
"parameters": {},
|
||||||
|
@ -296,7 +296,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getById": {
|
"POST::getById": {
|
||||||
"description": "Retourne les données d'une machine.",
|
"description": "Retourne les données d'une machine.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getByName": {
|
"POST::getByName": {
|
||||||
"description": "Retourne les données d'une machine de nom donné.",
|
"description": "Retourne les données d'une machine de nom donné.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -318,7 +318,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getClusters": {
|
"POST::getClusters": {
|
||||||
"description": "Retourne les groupes d'une machine.",
|
"description": "Retourne les groupes d'une machine.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -329,7 +329,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"edit": {
|
"POST::edit": {
|
||||||
"description": "Modifie les attributs d'une machine.",
|
"description": "Modifie les attributs d'une machine.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -339,7 +339,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"delete": {
|
"POST::delete": {
|
||||||
"description": "Supprime une machine.",
|
"description": "Supprime une machine.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -355,7 +355,7 @@
|
||||||
|
|
||||||
"clusterDefault": {
|
"clusterDefault": {
|
||||||
|
|
||||||
"create": {
|
"POST::create": {
|
||||||
"description": "Création d'un nouveau groupe.",
|
"description": "Création d'un nouveau groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -367,7 +367,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"search": {
|
"POST::search": {
|
||||||
"description": "Recherche d'un groupe par mots-clés.",
|
"description": "Recherche d'un groupe par mots-clés.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -379,7 +379,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getAll": {
|
"POST::getAll": {
|
||||||
"description": "Liste de tous les groupes",
|
"description": "Liste de tous les groupes",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getById": {
|
"POST::getById": {
|
||||||
"description": "Retourne un groupe spécifique.",
|
"description": "Retourne un groupe spécifique.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -403,7 +403,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getByName": {
|
"POST::getByName": {
|
||||||
"description": "Retourne un groupe de nom donné.",
|
"description": "Retourne un groupe de nom donné.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -415,7 +415,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getMembers": {
|
"POST::getMembers": {
|
||||||
"description": "Retourne les membres d'un groupe.",
|
"description": "Retourne les membres d'un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -427,7 +427,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"edit": {
|
"POST::edit": {
|
||||||
"description": "Modifie le nom d'un groupe.",
|
"description": "Modifie le nom d'un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -440,7 +440,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"delete": {
|
"POST::delete": {
|
||||||
"description": "Suppression d'un groupe.",
|
"description": "Suppression d'un groupe.",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -452,7 +452,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"addPermission": {
|
"POST::addPermission": {
|
||||||
"description": "Ajout d'une permission",
|
"description": "Ajout d'une permission",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -463,7 +463,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"remPermission": {
|
"POST::remPermission": {
|
||||||
"description": "Suppression d'une permission",
|
"description": "Suppression d'une permission",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -474,7 +474,7 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getPermissions": {
|
"POST::getPermissions": {
|
||||||
"description": "Retourne la liste des permissions",
|
"description": "Retourne la liste des permissions",
|
||||||
"permissions": ["warehouse","admin"],
|
"permissions": ["warehouse","admin"],
|
||||||
"parameters": {},
|
"parameters": {},
|
||||||
|
@ -483,7 +483,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"getAuthenticatedClusters": {
|
"POST::getAuthenticatedClusters": {
|
||||||
"description": "Retourne les groupes d'utilisateurs ayant une action sur un groupe de machine.",
|
"description": "Retourne les groupes d'utilisateurs ayant une action sur un groupe de machine.",
|
||||||
"permissions": ["warehouse","admin"],
|
"permissions": ["warehouse","admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -498,7 +498,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"historyDefault": {
|
"historyDefault": {
|
||||||
"getAll": {
|
"POST::getAll": {
|
||||||
"description": "Retourne l'historique complet",
|
"description": "Retourne l'historique complet",
|
||||||
"permissions": ["warehouse", "admin"],
|
"permissions": ["warehouse", "admin"],
|
||||||
"parameters": {},
|
"parameters": {},
|
||||||
|
|
|
@ -4,11 +4,9 @@
|
||||||
|
|
||||||
debug();
|
debug();
|
||||||
use \router\core\Router;
|
use \router\core\Router;
|
||||||
|
use \api\core\Request;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Response;
|
||||||
use \api\core\ModuleResponse;
|
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \error\core\Error;
|
|
||||||
use \api\core\Authentification;
|
use \api\core\Authentification;
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,8 +24,10 @@
|
||||||
/* [1] Gestion des authentifications et des droits
|
/* [1] Gestion des authentifications et des droits
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) On met à jour l'authentification et les permissions */
|
/* (1) On met à jour l'authentification et les permissions */
|
||||||
Authentification::check();
|
$authsys = new Authentification();
|
||||||
$auth = Authentification::auth();
|
$auth = $authsys::auth();
|
||||||
|
|
||||||
|
Request::setAuthSystem($authsys);
|
||||||
|
|
||||||
|
|
||||||
/* (2) On définit la page d'accueil */
|
/* (2) On définit la page d'accueil */
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
|
|
||||||
// logout from admin
|
// logout from admin
|
||||||
$R->get('logout/?', function(){
|
$R->get('logout/?', function(){
|
||||||
(new ModuleRequest('authentificationDefault/admin', ['username' => '0', 'password' => '']))->dispatch();
|
(new Request('authentificationDefault/admin', ['username' => '0', 'password' => '']))->dispatch();
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
|
|
||||||
// warehouse logout
|
// warehouse logout
|
||||||
$R->get('logout/?', function(){
|
$R->get('logout/?', function(){
|
||||||
(new ModuleRequest('authentificationDefault/warehouse', ['name' => '000', 'password' => '']))->dispatch();
|
(new Request('authentificationDefault/warehouse', ['name' => '000', 'password' => '']))->dispatch();
|
||||||
header('Location: /');
|
header('Location: /');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -133,12 +133,12 @@
|
||||||
|
|
||||||
|
|
||||||
/* (4) api/module/method -> Api */
|
/* (4) api/module/method -> Api */
|
||||||
$R->post('api(?:/(.*))/?', function($url){
|
$R->post('api(?:(/.*))/?', function($url){
|
||||||
$request = ModuleRequest::fromPost($url, $_POST);
|
$request = Request::remote($url[0], $_POST);
|
||||||
$answer = $request->dispatch();
|
$answer = $request->dispatch();
|
||||||
|
|
||||||
// Si c'est une réponse (et non un download)
|
// Si c'est une réponse (et non un download)
|
||||||
if( $answer instanceof ModuleResponse ){
|
if( $answer instanceof Response ){
|
||||||
header('Content-Type: application/json; charset=UTF-8');
|
header('Content-Type: application/json; charset=UTF-8');
|
||||||
echo $answer->serialize();
|
echo $answer->serialize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__DIR__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
|
|
||||||
$_SESSION['history'] = [];
|
$_SESSION['history'] = [];
|
||||||
|
|
||||||
if( !isset($_COOKIE['mac_password']) || !isset($_COOKIE['mac_count']) ){
|
if( !isset($_COOKIE['mac_password']) || !isset($_COOKIE['mac_count']) ){
|
||||||
$_COOKIE['mac_count'] = 10;
|
$_COOKIE['mac_count'] = 10;
|
||||||
$_COOKIE['mac_password'] = 'macPassword';
|
$_COOKIE['mac_password'] = 'macPassword';
|
||||||
|
|
||||||
setcookie('mac_count', $_COOKIE['mac_count'], time()+3600*24*365, '/');
|
setcookie('mac_count', $_COOKIE['mac_count'], time()+3600*24*365, '/');
|
||||||
setcookie('mac_password', $_COOKIE['mac_password'], time()+3600*24*365, '/');
|
setcookie('mac_password', $_COOKIE['mac_password'], time()+3600*24*365, '/');
|
||||||
|
|
||||||
header('Refresh: 0');
|
header('Refresh: 0');
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -21,402 +21,402 @@
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Virtual Client</title>
|
<title>Virtual Client</title>
|
||||||
|
|
||||||
|
|
||||||
<script type='text/javascript' src='/js/lib/reset.js' ></script> <!-- Corrections Javascript natif (ajouts) -->
|
<script type='text/javascript' src='/js/lib/reset.js' ></script> <!-- Corrections Javascript natif (ajouts) -->
|
||||||
<script type='text/javascript' src='/js/lib/api.js' ></script> <!-- Gestion des transactions avec le serveur -->
|
<script type='text/javascript' src='/js/lib/api.js' ></script> <!-- Gestion des transactions avec le serveur -->
|
||||||
<script type='text/javascript' src='/js/lib/page-manager.js' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
<script type='text/javascript' src='/js/lib/page-manager.js' ></script> <!-- Gestion réseau/chargement/liens/URL -->
|
||||||
<script type='text/javascript' src='/js/lib/form-deflater.js' ></script> <!-- Gestion des formulaires (Object) -->
|
<script type='text/javascript' src='/js/lib/form-deflater.js' ></script> <!-- Gestion des formulaires (Object) -->
|
||||||
<script type='text/javascript' src='/js/lib/local-storage-interface.js' ></script> <!-- Interface pour le 'localStorage' -->
|
<script type='text/javascript' src='/js/lib/local-storage-interface.js' ></script> <!-- Interface pour le 'localStorage' -->
|
||||||
<script type='text/javascript' src='/test/client/lib.js' ></script> <!-- Dépendance Directe -->
|
<script type='text/javascript' src='/test/client/lib.js' ></script> <!-- Dépendance Directe -->
|
||||||
<style type='text/css'>
|
<style type='text/css'>
|
||||||
body{
|
body{
|
||||||
background: #1c384b;
|
background: #1c384b;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
}
|
}
|
||||||
|
|
||||||
#machine-box{
|
#machine-box{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 40%;
|
top: 40%;
|
||||||
left: 60%;
|
left: 60%;
|
||||||
width: 20em;
|
width: 20em;
|
||||||
height: 35em;
|
height: 35em;
|
||||||
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
border: 2px solid #1a1a1a;
|
border: 2px solid #1a1a1a;
|
||||||
box-shadow: 0 0 2em #172e3d;
|
box-shadow: 0 0 2em #172e3d;
|
||||||
|
|
||||||
background: #222;
|
background: #222;
|
||||||
|
|
||||||
transform: translateX(-50%) translateY(-50%);
|
transform: translateX(-50%) translateY(-50%);
|
||||||
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
#machine-box > #led{
|
#machine-box > #led{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: calc( 20% - 1.5em/2 - 2px/2 );
|
top: calc( 20% - 1.5em/2 - 2px/2 );
|
||||||
left: calc( 75% - 1.5em/2 - 2px/2 );
|
left: calc( 75% - 1.5em/2 - 2px/2 );
|
||||||
width: 1.5em;
|
width: 1.5em;
|
||||||
height: 1.5em;
|
height: 1.5em;
|
||||||
|
|
||||||
border-radius: 50% / 50%;
|
border-radius: 50% / 50%;
|
||||||
border: 2px solid #111;
|
border: 2px solid #111;
|
||||||
|
|
||||||
background: #000;
|
background: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#machine-box > #r1,
|
#machine-box > #r1,
|
||||||
#machine-box > #r2{
|
#machine-box > #r2{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: calc( 25% - 3em/2 );
|
top: calc( 25% - 3em/2 );
|
||||||
left: 100%;
|
left: 100%;
|
||||||
width: 4em;
|
width: 4em;
|
||||||
height: 3em;
|
height: 3em;
|
||||||
|
|
||||||
background: #000;
|
background: #000;
|
||||||
|
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
text-align: center;
|
|
||||||
line-height: 3em;
|
|
||||||
}
|
|
||||||
#machine-box > #r2{
|
|
||||||
top: calc( 50% - 3em/2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#machine-box > #r1.active,
|
|
||||||
#machine-box > #r2.active{
|
|
||||||
font-weight: bold;
|
|
||||||
color: #18eea9;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-stack{
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 20%;
|
|
||||||
width: 20em;
|
|
||||||
height: 35em;
|
|
||||||
|
|
||||||
transform: translateX(-50%) translateY(-50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-stack > .card{
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 4em;
|
|
||||||
margin-bottom: .2em;
|
|
||||||
|
|
||||||
border-radius: 10px 10px 0 0;
|
|
||||||
box-shadow: 0 2px 10px #111;
|
|
||||||
|
|
||||||
background: #eee;
|
|
||||||
|
|
||||||
color: #333;
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 4em;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
line-height: 3em;
|
||||||
transition: all .2s ease-in-out;
|
}
|
||||||
|
#machine-box > #r2{
|
||||||
cursor: pointer;
|
top: calc( 50% - 3em/2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
#card-stack > .card:hover{
|
|
||||||
background: #fff;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-stack > .card.active{
|
|
||||||
background: #aaa;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-stack > input{
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
width: calc( 100% - 1em*2 );
|
|
||||||
height: calc( 3em - 1em*2 );
|
|
||||||
padding: 1em;
|
|
||||||
margin-bottom: 2em;
|
|
||||||
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 0;
|
|
||||||
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sync-button,
|
|
||||||
#card-pass{
|
|
||||||
position: absolute;
|
|
||||||
top: calc( 50% + 29em );
|
|
||||||
left: 60%;
|
|
||||||
padding: 1.5em;
|
|
||||||
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 2px solid #fff;
|
|
||||||
|
|
||||||
background: #1ee18e;
|
|
||||||
|
|
||||||
color: #fff;
|
|
||||||
font-weight: bold;
|
|
||||||
letter-spacing: .15em;
|
|
||||||
text-transform: uppercase;
|
|
||||||
|
|
||||||
transition: all .2s ease-in-out;
|
|
||||||
|
|
||||||
transform: translateX(-50%) translateY(-50%);
|
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-pass{
|
|
||||||
top: calc( 40% + 29em );
|
|
||||||
background: #3595ce;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sync-button:hover{
|
|
||||||
background: #1ac47c;
|
|
||||||
}
|
|
||||||
|
|
||||||
#card-pass:hover{
|
|
||||||
background: #2d7dad;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
#machine-box > #r1.active,
|
||||||
|
#machine-box > #r2.active{
|
||||||
|
font-weight: bold;
|
||||||
|
color: #18eea9;
|
||||||
|
}
|
||||||
|
|
||||||
</head>
|
#card-stack{
|
||||||
<body>
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 20%;
|
||||||
|
width: 20em;
|
||||||
|
height: 35em;
|
||||||
|
|
||||||
|
transform: translateX(-50%) translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-stack > .card{
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 4em;
|
||||||
|
margin-bottom: .2em;
|
||||||
|
|
||||||
|
border-radius: 10px 10px 0 0;
|
||||||
|
box-shadow: 0 2px 10px #111;
|
||||||
|
|
||||||
|
background: #eee;
|
||||||
|
|
||||||
|
color: #333;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 4em;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
transition: all .2s ease-in-out;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-stack > .card:hover{
|
||||||
|
background: #fff;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-stack > .card.active{
|
||||||
|
background: #aaa;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-stack > input{
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
width: calc( 100% - 1em*2 );
|
||||||
|
height: calc( 3em - 1em*2 );
|
||||||
|
padding: 1em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 0;
|
||||||
|
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sync-button,
|
||||||
|
#card-pass{
|
||||||
|
position: absolute;
|
||||||
|
top: calc( 50% + 29em );
|
||||||
|
left: 60%;
|
||||||
|
padding: 1.5em;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
|
||||||
|
background: #1ee18e;
|
||||||
|
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: .15em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
|
||||||
|
transition: all .2s ease-in-out;
|
||||||
|
|
||||||
|
transform: translateX(-50%) translateY(-50%);
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-pass{
|
||||||
|
top: calc( 40% + 29em );
|
||||||
|
background: #3595ce;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sync-button:hover{
|
||||||
|
background: #1ac47c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#card-pass:hover{
|
||||||
|
background: #2d7dad;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
<div id='machine-box'>
|
</style>
|
||||||
<div id='led'></div>
|
|
||||||
<div id='r1'>r1</div>
|
</head>
|
||||||
<div id='r2'>r2</div>
|
<body>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id='card-stack'>
|
<div id='machine-box'>
|
||||||
<input id='add-card' placeholder='Code RFID' type='text'>
|
<div id='led'></div>
|
||||||
<div class='card'>AB-CD-EF-GH</div>
|
<div id='r1'>r1</div>
|
||||||
<div class='card'>10-FE-BD-61</div>
|
<div id='r2'>r2</div>
|
||||||
<div class='card'>92-55-B9-B3</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<input type='button' id='card-pass' value='Passer la carte'>
|
<div id='card-stack'>
|
||||||
<input type='button' id='sync-button' value='Synchronisation'>
|
<input id='add-card' placeholder='Code RFID' type='text'>
|
||||||
|
<div class='card'>AB-CD-EF-GH</div>
|
||||||
|
<div class='card'>10-FE-BD-61</div>
|
||||||
|
<div class='card'>92-55-B9-B3</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<input type='button' id='card-pass' value='Passer la carte'>
|
||||||
|
<input type='button' id='sync-button' value='Synchronisation'>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type='text/javascript'>
|
<script type='text/javascript'>
|
||||||
/* [0] Initialisation et éléments
|
/* [0] Initialisation et éléments
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Etats du système */
|
/* (1) Etats du système */
|
||||||
var STATE = [ 0, 0, 0 ];
|
var STATE = [ 0, 0, 0 ];
|
||||||
|
|
||||||
/* (2) Elements du DOM */
|
/* (2) Elements du DOM */
|
||||||
var mBox = document.getElementById('machine-box');
|
var mBox = document.getElementById('machine-box');
|
||||||
var led = document.getElementById('led');
|
var led = document.getElementById('led');
|
||||||
var r1 = document.getElementById('r1');
|
var r1 = document.getElementById('r1');
|
||||||
var r2 = document.getElementById('r2');
|
var r2 = document.getElementById('r2');
|
||||||
var cBox = document.getElementById('card-stack');
|
var cBox = document.getElementById('card-stack');
|
||||||
var cAdd = document.getElementById('add-card');
|
var cAdd = document.getElementById('add-card');
|
||||||
var sync = document.getElementById('sync-button');
|
var sync = document.getElementById('sync-button');
|
||||||
var pass = document.getElementById('card-pass');
|
var pass = document.getElementById('card-pass');
|
||||||
|
|
||||||
/* (3) Variables de suivi */
|
/* (3) Variables de suivi */
|
||||||
var CARD = null;
|
var CARD = null;
|
||||||
var lastCard = null;
|
var lastCard = null;
|
||||||
var lsi = new localStorageInterface();
|
var lsi = new localStorageInterface();
|
||||||
lsi.createDataset('STATES.CNF' );
|
lsi.createDataset('STATES.CNF' );
|
||||||
lsi.createDataset('ACTIONS.CNF');
|
lsi.createDataset('ACTIONS.CNF');
|
||||||
lsi.createDataset('CHIPS.CNF');
|
lsi.createDataset('CHIPS.CNF');
|
||||||
lsi.createDataset('PERMISSIONS.CNF');
|
lsi.createDataset('PERMISSIONS.CNF');
|
||||||
lsi.createDataset('SERVER.CNF' );
|
lsi.createDataset('SERVER.CNF' );
|
||||||
lsi.createDataset('HISTORY.LOG');
|
lsi.createDataset('HISTORY.LOG');
|
||||||
lsi.createDataset('STATES.LOG' );
|
lsi.createDataset('STATES.LOG' );
|
||||||
|
|
||||||
/* (4) Récupération des données de fonctionnement */
|
/* (4) Récupération des données de fonctionnement */
|
||||||
var api = new APIClass('/api/');
|
var api = new APIClass('/api/');
|
||||||
|
|
||||||
var ACTIONS, STATES, CHIPS, PERMISSIONS;
|
var ACTIONS, STATES, CHIPS, PERMISSIONS;
|
||||||
|
|
||||||
api.send({path: 'machineDefault/init', id_machine: 1}, function(response){
|
api.send({path: 'machineDefault/init', id_machine: 1}, function(response){
|
||||||
lsi.import('ACTIONS.CNF', response.actions);
|
lsi.import('ACTIONS.CNF', response.actions);
|
||||||
lsi.import('STATES.CNF', response.states);
|
lsi.import('STATES.CNF', response.states);
|
||||||
lsi.import('CHIPS.CNF', response.chips);
|
lsi.import('CHIPS.CNF', response.chips);
|
||||||
lsi.import('PERMISSIONS.CNF', response.permissions);
|
lsi.import('PERMISSIONS.CNF', response.permissions);
|
||||||
|
|
||||||
ACTIONS = lsi.export('ACTIONS.CNF');
|
ACTIONS = lsi.export('ACTIONS.CNF');
|
||||||
STATES = lsi.export('STATES.CNF');
|
STATES = lsi.export('STATES.CNF');
|
||||||
CHIPS = lsi.export('CHIPS.CNF');
|
CHIPS = lsi.export('CHIPS.CNF');
|
||||||
PERMISSIONS = lsi.export('PERMISSIONS.CNF');
|
PERMISSIONS = lsi.export('PERMISSIONS.CNF');
|
||||||
}, '643405e1004845c2291c244faab192e3ad493b9dec147c8030475794b0f2fa23');
|
}, '643405e1004845c2291c244faab192e3ad493b9dec147c8030475794b0f2fa23');
|
||||||
|
|
||||||
/* (5) On initialise la carte + les puces */
|
/* (5) On initialise la carte + les puces */
|
||||||
var board = new Board(50);
|
var board = new Board(50);
|
||||||
|
|
||||||
var CHIP = {
|
var CHIP = {
|
||||||
led: new LedInterface( new Chip('serial', [1, 2, 3]), led ),
|
led: new LedInterface( new Chip('serial', [1, 2, 3]), led ),
|
||||||
r1: new RelayInterface( new Chip('serial', [4]), r1 ),
|
r1: new RelayInterface( new Chip('serial', [4]), r1 ),
|
||||||
r2: new RelayInterface( new Chip('serial', [5]), r2 )
|
r2: new RelayInterface( new Chip('serial', [5]), r2 )
|
||||||
};
|
};
|
||||||
|
|
||||||
var chipList = Object.keys(CHIP);
|
var chipList = Object.keys(CHIP);
|
||||||
|
|
||||||
// Branchement des puces
|
// Branchement des puces
|
||||||
for( var i = 0 ; i < chipList.length ; i++ )
|
for( var i = 0 ; i < chipList.length ; i++ )
|
||||||
board.plug( CHIP[chipList[i]] );
|
board.plug( CHIP[chipList[i]] );
|
||||||
|
|
||||||
|
|
||||||
/* [1] Fonctions
|
/* [1] Fonctions
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Gestion de mise à jour de la led en fonction de l'état
|
/* (1) Gestion de mise à jour de la led en fonction de l'état
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
function updateChips(){
|
function updateChips(){
|
||||||
var STATES = lsi.export('STATES.CNF');
|
var STATES = lsi.export('STATES.CNF');
|
||||||
var CHIPS = lsi.export('CHIPS.CNF');
|
var CHIPS = lsi.export('CHIPS.CNF');
|
||||||
|
|
||||||
/* (1) On vérifie quel état correspond */
|
/* (1) On vérifie quel état correspond */
|
||||||
for( var s in STATES ){
|
for( var s in STATES ){
|
||||||
|
|
||||||
/* (2) Si l'état correspond */
|
/* (2) Si l'état correspond */
|
||||||
if( previous(STATES[s].global_state, STATE) ){
|
if( previous(STATES[s].global_state, STATE) ){
|
||||||
|
|
||||||
console.log('STATE', STATE.join(''), 'matches', STATES[s].global_state);
|
console.log('STATE', STATE.join(''), 'matches', STATES[s].global_state);
|
||||||
|
|
||||||
/* (3) On applique l'état à chaque CHIP */
|
/* (3) On applique l'état à chaque CHIP */
|
||||||
for( var c in CHIPS ){
|
for( var c in CHIPS ){
|
||||||
|
|
||||||
/* (4) Si la puce a bien cet été de défini */
|
/* (4) Si la puce a bien cet été de défini */
|
||||||
if( !CHIPS[c].states.hasOwnProperty(STATES[s].chips[c]) )
|
if( !CHIPS[c].states.hasOwnProperty(STATES[s].chips[c]) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* (5) On récupère les PIN + les VALUES */
|
/* (5) On récupère les PIN + les VALUES */
|
||||||
var pins = CHIPS[c].pins;
|
var pins = CHIPS[c].pins;
|
||||||
var values = CHIPS[c].states[STATES[s].chips[c]];
|
var values = CHIPS[c].states[STATES[s].chips[c]];
|
||||||
|
|
||||||
/* (6) On applique les valeurs */
|
/* (6) On applique les valeurs */
|
||||||
for( var p in pins )
|
for( var p in pins )
|
||||||
board.set( parseInt(pins[p]), parseInt(values[p]) );
|
board.set( parseInt(pins[p]), parseInt(values[p]) );
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] Gestion de l'ajout de carte
|
||||||
|
=========================================================*/
|
||||||
|
cAdd.addEventListener('keyup', function(e){
|
||||||
|
if( e.keyCode == 13 ) cBox.innerHTML += "<div class='card'>"+e.target.value+"</div>";
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] Gestion de la sélection de carte
|
||||||
|
=========================================================*/
|
||||||
|
cBox.addEventListener('click', function(e){
|
||||||
|
if( e.target.className == 'card' ){
|
||||||
|
CARD = e.target.innerHTML;
|
||||||
|
|
||||||
|
var allCards = document.querySelectorAll('#card-stack .card');
|
||||||
|
for( var i = 0 ; i < allCards.length ; i++ )
|
||||||
|
allCards[i].remClass('active');
|
||||||
|
|
||||||
|
e.target.addClass('active');
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
CARD = document.querySelector('#card-stack .card').innerHTML;
|
||||||
|
document.querySelector('#card-stack .card').addClass('active');
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] Passage de carte
|
||||||
|
=========================================================*/
|
||||||
|
var INTERVAL = null;
|
||||||
|
var COUNT = 0;
|
||||||
|
|
||||||
|
|
||||||
|
/* (0) Routine de comptage de temps
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
function countRoutine(){
|
||||||
|
/* (1) Si le TIMEOUT actuel n'est pas défini, on quitte */
|
||||||
|
var exists = false;
|
||||||
|
for( var t in Object.keys(ACTIONS) )
|
||||||
|
if( t == COUNT ) exists = true;
|
||||||
|
|
||||||
|
// Si aucune action pour ce timeout, on quitte
|
||||||
|
if( !exists ) return;
|
||||||
|
|
||||||
|
/* (2) Pour chaque action de ce timeout */
|
||||||
|
for( var a in Object.keys(ACTIONS[COUNT]) ){
|
||||||
|
|
||||||
|
/* (3) On vérifie que l'utilisateur a la permissions d'effectuer l'action */
|
||||||
|
var hasPermission = PERMISSIONS.hasOwnProperty(CARD) && PERMISSIONS[CARD].actions.indexOf( ACTIONS[COUNT][a].id_action.toString() ) > -1;
|
||||||
|
|
||||||
|
// Si on a pas la permission, on quitte
|
||||||
|
if( !hasPermission ) continue;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (4) Si la condition est correcte, On applique la modification de l'état */
|
||||||
|
if( previous(ACTIONS[COUNT][a].previous, STATE) ){
|
||||||
|
action(ACTIONS[COUNT][a].action, STATE);
|
||||||
|
|
||||||
|
/* (5) On enregistre l'action dans l'historique */
|
||||||
|
var historyKeys = lsi.keys('HISTORY.LOG').length;
|
||||||
|
|
||||||
|
lsi.set('HISTORY.LOG', historyKeys+1, {
|
||||||
|
id_user: parseInt(PERMISSIONS[CARD].id_user),
|
||||||
|
id_machine: 1,
|
||||||
|
id_action: parseInt(ACTIONS[COUNT][a].id_action)
|
||||||
|
});
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateChips();
|
||||||
|
COUNT++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (1) Appui carte
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
pass.addEventListener('mousedown', function(e){
|
||||||
|
COUNT = 0;
|
||||||
|
|
||||||
|
countRoutine();
|
||||||
|
INTERVAL = setInterval( countRoutine, 1000 );
|
||||||
|
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
/* (2) Levé carte
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
window.addEventListener('mouseup', function(e){
|
||||||
|
clearInterval(INTERVAL);
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
/* [5] Synchronisation
|
||||||
|
=========================================================*/
|
||||||
|
sync.addEventListener('click', function(e){
|
||||||
|
|
||||||
/* [2] Gestion de l'ajout de carte
|
}, false);
|
||||||
=========================================================*/
|
|
||||||
cAdd.addEventListener('keyup', function(e){
|
|
||||||
if( e.keyCode == 13 ) cBox.innerHTML += "<div class='card'>"+e.target.value+"</div>";
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
|
</script>
|
||||||
/* [3] Gestion de la sélection de carte
|
</body>
|
||||||
=========================================================*/
|
|
||||||
cBox.addEventListener('click', function(e){
|
|
||||||
if( e.target.className == 'card' ){
|
|
||||||
CARD = e.target.innerHTML;
|
|
||||||
|
|
||||||
var allCards = document.querySelectorAll('#card-stack .card');
|
|
||||||
for( var i = 0 ; i < allCards.length ; i++ )
|
|
||||||
allCards[i].remClass('active');
|
|
||||||
|
|
||||||
e.target.addClass('active');
|
|
||||||
}
|
|
||||||
}, false);
|
|
||||||
CARD = document.querySelector('#card-stack .card').innerHTML;
|
|
||||||
document.querySelector('#card-stack .card').addClass('active');
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] Passage de carte
|
|
||||||
=========================================================*/
|
|
||||||
var INTERVAL = null;
|
|
||||||
var COUNT = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* (0) Routine de comptage de temps
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
function countRoutine(){
|
|
||||||
/* (1) Si le TIMEOUT actuel n'est pas défini, on quitte */
|
|
||||||
var exists = false;
|
|
||||||
for( var t in Object.keys(ACTIONS) )
|
|
||||||
if( t == COUNT ) exists = true;
|
|
||||||
|
|
||||||
// Si aucune action pour ce timeout, on quitte
|
|
||||||
if( !exists ) return;
|
|
||||||
|
|
||||||
/* (2) Pour chaque action de ce timeout */
|
|
||||||
for( var a in Object.keys(ACTIONS[COUNT]) ){
|
|
||||||
|
|
||||||
/* (3) On vérifie que l'utilisateur a la permissions d'effectuer l'action */
|
|
||||||
var hasPermission = PERMISSIONS.hasOwnProperty(CARD) && PERMISSIONS[CARD].actions.indexOf( ACTIONS[COUNT][a].id_action.toString() ) > -1;
|
|
||||||
|
|
||||||
// Si on a pas la permission, on quitte
|
|
||||||
if( !hasPermission ) continue;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (4) Si la condition est correcte, On applique la modification de l'état */
|
|
||||||
if( previous(ACTIONS[COUNT][a].previous, STATE) ){
|
|
||||||
action(ACTIONS[COUNT][a].action, STATE);
|
|
||||||
|
|
||||||
/* (5) On enregistre l'action dans l'historique */
|
|
||||||
var historyKeys = lsi.keys('HISTORY.LOG').length;
|
|
||||||
|
|
||||||
lsi.set('HISTORY.LOG', historyKeys+1, {
|
|
||||||
id_user: parseInt(PERMISSIONS[CARD].id_user),
|
|
||||||
id_machine: 1,
|
|
||||||
id_action: parseInt(ACTIONS[COUNT][a].id_action)
|
|
||||||
});
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
updateChips();
|
|
||||||
COUNT++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (1) Appui carte
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
pass.addEventListener('mousedown', function(e){
|
|
||||||
COUNT = 0;
|
|
||||||
|
|
||||||
countRoutine();
|
|
||||||
INTERVAL = setInterval( countRoutine, 1000 );
|
|
||||||
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
/* (2) Levé carte
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
window.addEventListener('mouseup', function(e){
|
|
||||||
clearInterval(INTERVAL);
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] Synchronisation
|
|
||||||
=========================================================*/
|
|
||||||
sync.addEventListener('click', function(e){
|
|
||||||
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -152,7 +152,7 @@
|
||||||
api.send(request, function(response){
|
api.send(request, function(response){
|
||||||
|
|
||||||
// Si erreur de module
|
// Si erreur de module
|
||||||
if( response.ModuleError != 0 ){
|
if( response.error != 0 ){
|
||||||
errBox.innerHTML = 'Format des champs incorrect.';
|
errBox.innerHTML = 'Format des champs incorrect.';
|
||||||
aPassword.value = '';
|
aPassword.value = '';
|
||||||
return false;
|
return false;
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
|
|
||||||
/* (2) On envoie la requête */
|
/* (2) On envoie la requête */
|
||||||
api.send(request, function(response){
|
api.send(request, function(response){
|
||||||
if( response.ModuleError == 0 ){
|
if( response.error == 0 ){
|
||||||
if( response.status == false )
|
if( response.status == false )
|
||||||
document.location = '/';
|
document.location = '/';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
use \orm\core\Table;
|
use \orm\core\Table;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -56,7 +55,7 @@
|
||||||
|
|
||||||
/* [1] VIEW -> Liste des groupes
|
/* [1] VIEW -> Liste des groupes
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$request = new ModuleRequest('clusterDefault/getAll'); // On utilise la methode 'getAll' du module 'groupDefault'
|
$request = new Request('clusterDefault/getAll'); // On utilise la methode 'getAll' du module 'groupDefault'
|
||||||
$answer = $request->dispatch(); // On recupere la reponse
|
$answer = $request->dispatch(); // On recupere la reponse
|
||||||
|
|
||||||
echo "<section data-sublink='view' class='list'>";
|
echo "<section data-sublink='view' class='list'>";
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
<?php define('__ROOT__', dirname(dirname(dirname(__FILE__))) );
|
||||||
require_once __ROOT__.'/autoloader.php';
|
require_once __ROOT__.'/autoloader.php';
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!-- [1] Gestion du sous-menu de gauche -->
|
<!-- [1] Gestion du sous-menu de gauche -->
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
require_once '../../autoloader.php';
|
require_once '../../autoloader.php';
|
||||||
use \api\core\ModuleRequest;
|
use \api\core\Request;
|
||||||
use \error\core\Error;
|
|
||||||
use \viewer\core\Viewer;
|
use \viewer\core\Viewer;
|
||||||
use \database\core\Repo;
|
use \database\core\Repo;
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -138,8 +138,9 @@
|
||||||
|
|
||||||
api.send(request, function(response){
|
api.send(request, function(response){
|
||||||
|
|
||||||
|
console.warn(response);
|
||||||
// Si erreur de module
|
// Si erreur de module
|
||||||
if( response.ModuleError != 0 ){
|
if( response.error != 0 ){
|
||||||
errBox.innerHTML = 'Format des champs incorrect.';
|
errBox.innerHTML = 'Format des champs incorrect.';
|
||||||
wPassword.value = '';
|
wPassword.value = '';
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue