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
abcd204093
commit
b5006ddace
|
@ -64,22 +64,25 @@
|
|||
"name": { "description": "Nom de l'entrepot.", "type": "varchar(3,30,alphanumeric)" },
|
||||
"password": { "description": "Mot de passe de l'entrepot.", "type": "text" }
|
||||
},
|
||||
"output": {}
|
||||
"output": {
|
||||
"status": { "description": "Status de la connexion.", "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"admin": {
|
||||
"description": "Connexion de second niveau : administrateur.",
|
||||
"permissions": ["warehouse"],
|
||||
"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" }
|
||||
},
|
||||
"output": {}
|
||||
"output": {
|
||||
"status": { "description": "Status de la connexion.", "type": "boolean" }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
"userDefault": {
|
||||
|
||||
"create": {
|
||||
|
|
|
@ -25,8 +25,10 @@
|
|||
public static function check(){
|
||||
/* (1) Initialisation
|
||||
---------------------------------------------------------*/
|
||||
if( !isset($_SESSION['AUTH']) ) $_SESSION['AUTH'] = [];
|
||||
if( !isset($_SESSION['PERM']) ) $_SESSION['PERM'] = [];
|
||||
if( !isset($_SESSION['AUTH']) ) $_SESSION['AUTH'] = [];
|
||||
if( !isset($_SESSION['PERM']) ) $_SESSION['PERM'] = [];
|
||||
if( !isset($_SESSION['WAREHOUSE']) ) $_SESSION['WAREHOUSE'] = [];
|
||||
if( !isset($_SESSION['ADMIN']) ) $_SESSION['ADMIN'] = [];
|
||||
|
||||
|
||||
/* (2) Gestion de AUTH (authentification)
|
||||
|
@ -50,14 +52,22 @@
|
|||
$_SESSION['AUTH'] = [ $match[0] ];
|
||||
|
||||
/* (3) Aucune authentification */
|
||||
else
|
||||
$_SESSION['AUTH'] = [];
|
||||
else{
|
||||
$_SESSION['AUTH'] = [];
|
||||
$_SESSION['PERM'] = [];
|
||||
$_SESSION['WAREHOUSE'] = [];
|
||||
$_SESSION['ADMIN'] = [];
|
||||
}
|
||||
|
||||
|
||||
/* (4) On vérifie l'authentification par BDD
|
||||
---------------------------------------------------------*/
|
||||
if( !self::deepCheck() )
|
||||
$_SESSION['AUTH'] = [];
|
||||
if( !self::deepCheck() ){
|
||||
$_SESSION['AUTH'] = [];
|
||||
$_SESSION['PERM'] = [];
|
||||
$_SESSION['WAREHOUSE'] = [];
|
||||
$_SESSION['ADMIN'] = [];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -79,13 +89,13 @@
|
|||
$checkRoot = new Repo('warehouse/getByToken', [ $_SESSION['AUTH'][0] ]);
|
||||
|
||||
/* (1) Si le token n'existe pas, on retourne une erreur */
|
||||
if( count($checkRoot->answer()) < 1 )
|
||||
if( $checkRoot->answer() == false )
|
||||
return false;
|
||||
|
||||
/* (2) On met à jour les informations de l'entrepot */
|
||||
$_SESSION['WAREHOUSE'] = [
|
||||
'id' => (int) $checkRoot->answer()[0]['id_warehouse'],
|
||||
'name' => $checkRoot->answer()[0]['name']
|
||||
'id' => (int) $checkRoot->answer()[0]['id_warehouse'],
|
||||
'name' => $checkRoot->answer()[0]['name']
|
||||
];
|
||||
|
||||
/* (3) On récupère les modules de l'entrepot */
|
||||
|
@ -100,7 +110,7 @@
|
|||
$checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]);
|
||||
|
||||
/* (1) Si le token n'existe pas, on retourne une erreur */
|
||||
if( count($checkBranch->answer()) < 1 )
|
||||
if( $checkBranch->answer() == false )
|
||||
return false;
|
||||
|
||||
/* (2) Si pas administrateur de l'entrepot, on retourne une erreur */
|
||||
|
|
|
@ -334,17 +334,7 @@
|
|||
}
|
||||
|
||||
|
||||
/* [3] On vérifie que le module est autorisé
|
||||
=========================================================*/
|
||||
// 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)
|
||||
/* [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
|
||||
$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 = [
|
||||
'module' => $module,
|
||||
|
@ -394,7 +384,28 @@
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,13 +47,6 @@
|
|||
*/
|
||||
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
|
||||
if( $path == null ){
|
||||
$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){
|
||||
/* [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
|
||||
WHERE cm.id_cluster = c.id_cluster
|
||||
AND cm.id_entity = m.id_machine
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
public static function getClusters($id_warehouse, $id_user){
|
||||
/* [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
|
||||
WHERE cm.id_cluster = c.id_cluster
|
||||
AND cm.id_entity = u.id_user
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
use \manager\Authentification;
|
||||
use \manager\Repo;
|
||||
|
||||
|
||||
var_dump( Authentification::auth() );
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
use \manager\ModuleRequest;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\ManagerError;
|
||||
use \manager\Repo;
|
||||
|
@ -322,11 +323,7 @@
|
|||
|
||||
|
||||
$getAll = new Repo('admin/getAll');
|
||||
}createWarehouse();
|
||||
|
||||
|
||||
|
||||
|
||||
}//createWarehouse();
|
||||
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue