Gestion des connexions 'entrepot' et 'admin' et corrections des droits de 'ModuleRequest'/'Authentification' et création du module 'authentificationDefault'
This commit is contained in:
parent
fb824ad1cd
commit
fa98401683
|
@ -64,22 +64,25 @@
|
||||||
"name": { "description": "Nom de l'entrepot.", "type": "varchar(3,30,alphanumeric)" },
|
"name": { "description": "Nom de l'entrepot.", "type": "varchar(3,30,alphanumeric)" },
|
||||||
"password": { "description": "Mot de passe de l'entrepot.", "type": "text" }
|
"password": { "description": "Mot de passe de l'entrepot.", "type": "text" }
|
||||||
},
|
},
|
||||||
"output": {}
|
"output": {
|
||||||
|
"status": { "description": "Status de la connexion.", "type": "boolean" }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"admin": {
|
"admin": {
|
||||||
"description": "Connexion de second niveau : administrateur.",
|
"description": "Connexion de second niveau : administrateur.",
|
||||||
"permissions": ["warehouse"],
|
"permissions": ["warehouse"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"name": { "description": "Identifiant de l'administrateur.", "type": "varchar(1,30,alphanumeric)" },
|
"username": { "description": "Identifiant de l'administrateur.", "type": "varchar(1,30,alphanumeric)" },
|
||||||
"password": { "description": "Mot de passe de l'administrateur'.", "type": "text" }
|
"password": { "description": "Mot de passe de l'administrateur'.", "type": "text" }
|
||||||
},
|
},
|
||||||
"output": {}
|
"output": {
|
||||||
|
"status": { "description": "Status de la connexion.", "type": "boolean" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"userDefault": {
|
"userDefault": {
|
||||||
|
|
||||||
"create": {
|
"create": {
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
if( !isset($_SESSION['AUTH']) ) $_SESSION['AUTH'] = [];
|
if( !isset($_SESSION['AUTH']) ) $_SESSION['AUTH'] = [];
|
||||||
if( !isset($_SESSION['PERM']) ) $_SESSION['PERM'] = [];
|
if( !isset($_SESSION['PERM']) ) $_SESSION['PERM'] = [];
|
||||||
|
if( !isset($_SESSION['WAREHOUSE']) ) $_SESSION['WAREHOUSE'] = [];
|
||||||
|
if( !isset($_SESSION['ADMIN']) ) $_SESSION['ADMIN'] = [];
|
||||||
|
|
||||||
|
|
||||||
/* (2) Gestion de AUTH (authentification)
|
/* (2) Gestion de AUTH (authentification)
|
||||||
|
@ -50,14 +52,22 @@
|
||||||
$_SESSION['AUTH'] = [ $match[0] ];
|
$_SESSION['AUTH'] = [ $match[0] ];
|
||||||
|
|
||||||
/* (3) Aucune authentification */
|
/* (3) Aucune authentification */
|
||||||
else
|
else{
|
||||||
$_SESSION['AUTH'] = [];
|
$_SESSION['AUTH'] = [];
|
||||||
|
$_SESSION['PERM'] = [];
|
||||||
|
$_SESSION['WAREHOUSE'] = [];
|
||||||
|
$_SESSION['ADMIN'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* (4) On vérifie l'authentification par BDD
|
/* (4) On vérifie l'authentification par BDD
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
if( !self::deepCheck() )
|
if( !self::deepCheck() ){
|
||||||
$_SESSION['AUTH'] = [];
|
$_SESSION['AUTH'] = [];
|
||||||
|
$_SESSION['PERM'] = [];
|
||||||
|
$_SESSION['WAREHOUSE'] = [];
|
||||||
|
$_SESSION['ADMIN'] = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,7 +89,7 @@
|
||||||
$checkRoot = new Repo('warehouse/getByToken', [ $_SESSION['AUTH'][0] ]);
|
$checkRoot = new Repo('warehouse/getByToken', [ $_SESSION['AUTH'][0] ]);
|
||||||
|
|
||||||
/* (1) Si le token n'existe pas, on retourne une erreur */
|
/* (1) Si le token n'existe pas, on retourne une erreur */
|
||||||
if( count($checkRoot->answer()) < 1 )
|
if( $checkRoot->answer() == false )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* (2) On met à jour les informations de l'entrepot */
|
/* (2) On met à jour les informations de l'entrepot */
|
||||||
|
@ -100,7 +110,7 @@
|
||||||
$checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]);
|
$checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]);
|
||||||
|
|
||||||
/* (1) Si le token n'existe pas, on retourne une erreur */
|
/* (1) Si le token n'existe pas, on retourne une erreur */
|
||||||
if( count($checkBranch->answer()) < 1 )
|
if( $checkBranch->answer() == false )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* (2) Si pas administrateur de l'entrepot, on retourne une erreur */
|
/* (2) Si pas administrateur de l'entrepot, on retourne une erreur */
|
||||||
|
|
|
@ -334,17 +334,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* [3] On vérifie que le module est autorisé
|
/* [3] Verification de l'existence de la methode (conf)
|
||||||
=========================================================*/
|
|
||||||
// Si le module n'est pas autorisé
|
|
||||||
// et qu'il ne finit pas par "Default"
|
|
||||||
if( !in_array($module, $_SESSION['WAREHOUSE']['modules']) && !preg_match('/^(\w+)Default$/', $module) ){
|
|
||||||
$this->error = ManagerError::DisabledModule;
|
|
||||||
return false; // On retourne FALSE, si erreur
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] 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 = ManagerError::UnknownMethod;
|
$this->error = ManagerError::UnknownMethod;
|
||||||
|
@ -353,7 +343,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] Enregistrement du chemin et renvoi de SUCCESS
|
/* [4] Enregistrement du chemin et renvoi de SUCCESS
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$this->path = [
|
$this->path = [
|
||||||
'module' => $module,
|
'module' => $module,
|
||||||
|
@ -394,7 +384,28 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (2) On retourne VRAI si la permission est ok */
|
|
||||||
|
/* [3] On vérifie que le module est autorisé
|
||||||
|
=========================================================*/
|
||||||
|
$moduleName = $this->path['module'];
|
||||||
|
|
||||||
|
/* (1) On vérifie que le module est actif dans l'entrepot */
|
||||||
|
$allowedModule = isset($_SESSION['WAREHOUSE']['modules'])
|
||||||
|
&& is_array($_SESSION['WAREHOUSE']['modules'])
|
||||||
|
&& in_array($moduleName, $_SESSION['WAREHOUSE']['modules']);
|
||||||
|
|
||||||
|
/* (2) On vérifie si le module est un module "Default" */
|
||||||
|
$defaultModule = preg_match('/^(\w+)Default$/', $moduleName);
|
||||||
|
|
||||||
|
/* (3) Si aucune autorisation et pas module "Default" */
|
||||||
|
if( !$allowedModule && !$defaultModule ){
|
||||||
|
$this->error = ManagerError::DisabledModule;
|
||||||
|
return false; // On retourne FALSE, si erreur
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* On retourne VRAI si la permission est ok */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,13 +47,6 @@
|
||||||
*/
|
*/
|
||||||
public function __construct($path=null, $params=null){
|
public function __construct($path=null, $params=null){
|
||||||
|
|
||||||
// Si pas authentifié, erreur
|
|
||||||
if( Authentification::auth() < 2 ){
|
|
||||||
$this->error = ManagerError::PermissionError;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Si pas parametre manquant, on quitte
|
// Si pas parametre manquant, on quitte
|
||||||
if( $path == null ){
|
if( $path == null ){
|
||||||
$this->error = ManagerError::MissingPath;
|
$this->error = ManagerError::MissingPath;
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace manager\module;
|
||||||
|
use \manager\Database;
|
||||||
|
use \manager\sessionManager;
|
||||||
|
use \manager\Authentification;
|
||||||
|
use \manager\ManagerError;
|
||||||
|
use \manager\Repo;
|
||||||
|
use \manager\repo\cluster as clusterRepo;
|
||||||
|
|
||||||
|
class authentificationDefault{
|
||||||
|
|
||||||
|
/* CONNEXION A UN ENTREPOT
|
||||||
|
*
|
||||||
|
* @name<String> Nom de l'entrepot
|
||||||
|
* @password<String> Mot de passe de l'entrepot
|
||||||
|
*
|
||||||
|
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function warehouse($params){
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
/* [1] On recherche un entrepot avec ce nom
|
||||||
|
=========================================================*/
|
||||||
|
$getName = new Repo('warehouse/getByName', [$name]);
|
||||||
|
|
||||||
|
$nameFetched = $getName->answer();
|
||||||
|
|
||||||
|
// Si aucun résultat, on retourne une erreur
|
||||||
|
if( count($nameFetched) == 0 )
|
||||||
|
return [ 'status' => false ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On vérifie le mot de passe
|
||||||
|
=========================================================*/
|
||||||
|
$hash_password = sessionManager::secure_sha1($password);
|
||||||
|
|
||||||
|
// Si mot de passe faux, on retourne une erreur
|
||||||
|
if( $nameFetched[0]['password'] != $hash_password )
|
||||||
|
return [ 'status' => false ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On définit le token
|
||||||
|
=========================================================*/
|
||||||
|
$_SESSION['AUTH'][0] = $nameFetched[0]['token'];
|
||||||
|
|
||||||
|
// On retourne le status
|
||||||
|
return [ 'status' => true ];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* CONNEXION EN TANT QU'ADMINISTRATEUR
|
||||||
|
*
|
||||||
|
* @username<String> Nom de l'administrateur
|
||||||
|
* @password<String> Mot de passe de l'administrateur
|
||||||
|
*
|
||||||
|
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function admin($params){
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
/* [1] On recherche un entrepot avec ce nom
|
||||||
|
=========================================================*/
|
||||||
|
$getUsername = new Repo('admin/getByUsername', [$username]);
|
||||||
|
|
||||||
|
$usernameFetched = $getUsername->answer();
|
||||||
|
|
||||||
|
// Si aucun résultat, on retourne une erreur
|
||||||
|
if( count($usernameFetched) == 0 )
|
||||||
|
return [ 'status' => false ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On vérifie le mot de passe
|
||||||
|
=========================================================*/
|
||||||
|
$hash_password = sessionManager::secure_sha1($password);
|
||||||
|
|
||||||
|
// Si mot de passe faux, on retourne une erreur
|
||||||
|
if( $usernameFetched[0]['password'] != $hash_password )
|
||||||
|
return [ 'status' => false ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On définit le token
|
||||||
|
=========================================================*/
|
||||||
|
$_SESSION['AUTH'][1] = $usernameFetched[0]['token'];
|
||||||
|
|
||||||
|
|
||||||
|
// On retourne le status
|
||||||
|
return [ 'status' => true ];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
|
@ -96,7 +96,7 @@
|
||||||
public static function getClusters($id_warehouse, $id_machine){
|
public static function getClusters($id_warehouse, $id_machine){
|
||||||
/* [1] On redige/execute la requete
|
/* [1] On redige/execute la requete
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$get_clusters = Database::getPDO()->prepare("SELECT c.*
|
$get_clusters = Database::getPDO()->prepare("SELECT c.id_cluster, c.name
|
||||||
FROM cluster as c, cluster_merge as cm, machine as m
|
FROM cluster as c, cluster_merge as cm, machine as m
|
||||||
WHERE cm.id_cluster = c.id_cluster
|
WHERE cm.id_cluster = c.id_cluster
|
||||||
AND cm.id_entity = m.id_machine
|
AND cm.id_entity = m.id_machine
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
public static function getClusters($id_warehouse, $id_user){
|
public static function getClusters($id_warehouse, $id_user){
|
||||||
/* [1] On redige/execute la requete
|
/* [1] On redige/execute la requete
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$get_clusters = Database::getPDO()->prepare("SELECT c.*
|
$get_clusters = Database::getPDO()->prepare("SELECT c.id_cluster, c.name
|
||||||
FROM cluster as c, cluster_merge as cm, user as u
|
FROM cluster as c, cluster_merge as cm, user as u
|
||||||
WHERE cm.id_cluster = c.id_cluster
|
WHERE cm.id_cluster = c.id_cluster
|
||||||
AND cm.id_entity = u.id_user
|
AND cm.id_entity = u.id_user
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
require_once __ROOT__.'/manager/autoloader.php';
|
require_once __ROOT__.'/manager/autoloader.php';
|
||||||
|
|
||||||
use \manager\Authentification;
|
use \manager\Authentification;
|
||||||
|
use \manager\Repo;
|
||||||
|
|
||||||
|
|
||||||
var_dump( Authentification::auth() );
|
var_dump( Authentification::auth() );
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
require_once __ROOT__.'/manager/autoloader.php';
|
require_once __ROOT__.'/manager/autoloader.php';
|
||||||
|
|
||||||
use \manager\ModuleRequest;
|
use \manager\ModuleRequest;
|
||||||
|
use \manager\sessionManager;
|
||||||
use \manager\ResourceDispatcher;
|
use \manager\ResourceDispatcher;
|
||||||
use \manager\ManagerError;
|
use \manager\ManagerError;
|
||||||
use \manager\Repo;
|
use \manager\Repo;
|
||||||
|
@ -322,11 +323,7 @@
|
||||||
|
|
||||||
|
|
||||||
$getAll = new Repo('admin/getAll');
|
$getAll = new Repo('admin/getAll');
|
||||||
}createWarehouse();
|
}//createWarehouse();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue