Gestion des modules en BDD avec vérification des modules autorisés pour un entrepot

This commit is contained in:
xdrm-brackets 2016-07-06 11:32:51 +02:00
parent 6797a2d4ff
commit e3934c9090
4 changed files with 67 additions and 23 deletions

View File

@ -40,6 +40,22 @@
} }
}, },
"download": {
"multiple": {
"description": "Download des données relatives aux sujets donnés.",
"permissions": ["admin"],
"options": { "download": true },
"parameters": {
"subjects": { "description": "Identifiants des sujets d'enquêtes à intégrer.", "type": "array<id>", "optional": true },
"phone": { "description": "Si vaut TRUE, renvoie les sujets cellulaires.", "type": "boolean", "optional": true },
"facebook": { "description": "Si vaut TRUE, renvoie les sujet facebook.", "type": "boolean", "optional": true },
"survey": { "description": "Si vaut TRUE, renvoie les sujets ResTIC.", "type": "boolean", "optional": true },
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
}
}
},
"authentificationDefault": { "authentificationDefault": {
"warehouse": { "warehouse": {
"description": "Connexion de premier niveau : entrepot.", "description": "Connexion de premier niveau : entrepot.",
@ -62,22 +78,6 @@
} }
}, },
"download": {
"multiple": {
"description": "Download des données relatives aux sujets donnés.",
"permissions": ["admin"],
"options": { "download": true },
"parameters": {
"subjects": { "description": "Identifiants des sujets d'enquêtes à intégrer.", "type": "array<id>", "optional": true },
"phone": { "description": "Si vaut TRUE, renvoie les sujets cellulaires.", "type": "boolean", "optional": true },
"facebook": { "description": "Si vaut TRUE, renvoie les sujet facebook.", "type": "boolean", "optional": true },
"survey": { "description": "Si vaut TRUE, renvoie les sujets ResTIC.", "type": "boolean", "optional": true },
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
}
}
},
"userDefault": { "userDefault": {

View File

@ -57,6 +57,8 @@
"getByName", "getByName",
"getByToken", "getByToken",
"getModules",
"updateToken" "updateToken"
], ],

View File

@ -78,16 +78,20 @@
if( self::auth() >= 1 ){ if( self::auth() >= 1 ){
$checkRoot = new Repo('warehouse/getByToken', [ $_SESSION['AUTH'][0] ]); $checkRoot = new Repo('warehouse/getByToken', [ $_SESSION['AUTH'][0] ]);
// Si le token n'existe pas /* (1) Si le token n'existe pas, on retourne une erreur */
if( count($checkRoot->answer()) < 1 ) if( count($checkRoot->answer()) < 1 )
return false; return false;
// On met à jour les informations /* (2) On met à jour les informations de l'entrepot */
$_SESSION['WAREHOUSE'] = [ $_SESSION['WAREHOUSE'] = [
'id' => (int) $checkRoot->answer()[0]['id_warehouse'], 'id' => (int) $checkRoot->answer()[0]['id_warehouse'],
'name' => $checkRoot->answer()[0]['name'], 'name' => $checkRoot->answer()[0]['name']
'modules' => ['upload', 'method']
]; ];
/* (3) On récupère les modules de l'entrepot */
$getModules = new Repo('warehouse/getModules', [ $_SESSION['WAREHOUSE']['id'] ]);
$_SESSION['WAREHOUSE']['modules'] = $getModules->answer();
} }
/* [3] Si authentification double /* [3] Si authentification double
@ -95,15 +99,15 @@
if( self::auth() >= 2 ){ if( self::auth() >= 2 ){
$checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]); $checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]);
// Si le token n'existe pas /* (1) Si le token n'existe pas, on retourne une erreur */
if( count($checkBranch->answer()) < 1 ) if( count($checkBranch->answer()) < 1 )
return false; return false;
// Si pas administrateur de l'entrepot /* (2) Si pas administrateur de l'entrepot, on retourne une erreur */
if( $checkBranch->answer()[0]['id_warehouse'] != $_SESSION['WAREHOUSE']['id'] ) if( $checkBranch->answer()[0]['id_warehouse'] != $_SESSION['WAREHOUSE']['id'] )
return false; return false;
// On met à jour les informations /* (3) On met à jour les informations de l'administrateur */
$_SESSION['ADMIN'] = [ $_SESSION['ADMIN'] = [
'id' => (int) $checkBranch->answer()[0]['id_admin'], 'id' => (int) $checkBranch->answer()[0]['id_admin'],
'username' => $checkBranch->answer()[0]['username'], 'username' => $checkBranch->answer()[0]['username'],

View File

@ -100,6 +100,44 @@
/* RETOURNE LA LISTE DES MODULE D'UN ENTREPOT
*
* @return modules<Array> Liste des modules autorisés pour l'entrepot
*
*/
public static function getModules($id_warehouse){
/* [1] On récupère les modules
=========================================================*/
$getModules = Database::getPDO()->prepare("SELECT m.name
FROM warehouse_module as wm, module as m
WHERE wm.id_module = m.id_module
AND wm.id_warehouse = :id_warehouse
ORDER BY m.name ASC");
$getModules->execute([
':id_warehouse' => $id_warehouse
]);
$modules = $getModules->fetchAll();
/* [2] On formatte les données pour avoir 1 niveau de tableau
=========================================================*/
foreach($modules as $m=>$module)
$modules[$m] = $module['name'];
/* [3] On retourne la liste
=========================================================*/
return Database::delNumeric( $modules );
}
/* MODIFICATION D'UN ENTREPOT /* MODIFICATION D'UN ENTREPOT
* *
* @id_warehouse<int> UID de l'entrepot * @id_warehouse<int> UID de l'entrepot