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": {
"warehouse": {
"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": {

View File

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

View File

@ -78,16 +78,20 @@
if( self::auth() >= 1 ){
$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 )
return false;
// On met à jour les informations
/* (2) On met à jour les informations de l'entrepot */
$_SESSION['WAREHOUSE'] = [
'id' => (int) $checkRoot->answer()[0]['id_warehouse'],
'name' => $checkRoot->answer()[0]['name'],
'modules' => ['upload', 'method']
'name' => $checkRoot->answer()[0]['name']
];
/* (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
@ -95,15 +99,15 @@
if( self::auth() >= 2 ){
$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 )
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'] )
return false;
// On met à jour les informations
/* (3) On met à jour les informations de l'administrateur */
$_SESSION['ADMIN'] = [
'id' => (int) $checkBranch->answer()[0]['id_admin'],
'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
*
* @id_warehouse<int> UID de l'entrepot