Gestion des modules autorisés, gestion en BDD à faire

This commit is contained in:
xdrm-brackets 2016-07-06 11:10:21 +02:00
parent 4140936396
commit 6458f831aa
3 changed files with 36 additions and 20 deletions

View File

@ -85,7 +85,8 @@
// On met à jour les informations // On met à jour les informations
$_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']
]; ];
} }

View File

@ -23,58 +23,61 @@
/* ModuleRequest */ /* ModuleRequest */
// Le module n'est pas activé
const DisabledModule = 4;
// Le @path n'est pas renseigne // Le @path n'est pas renseigne
const MissingPath = 4; const MissingPath = 5;
// Verification de la coherence du chemin (existe dans la conf) // Verification de la coherence du chemin (existe dans la conf)
const WrongPathModule = 5; const WrongPathModule = 6;
// Module non specifie dans la conf // Module non specifie dans la conf
const UnknownModule = 6; const UnknownModule = 7;
// Methode non specifie pour ce Module dans la conf // Methode non specifie pour ce Module dans la conf
const UnknownMethod = 7; const UnknownMethod = 8;
// Methode inamorcable // Methode inamorcable
const UncallableMethod = 8; const UncallableMethod = 9;
// Erreur de parametre(s) // Erreur de parametre(s)
const ParamError = 9; const ParamError = 10;
// Erreur dans le traitement // Erreur dans le traitement
const ModuleError = 10; const ModuleError = 11;
/* Repo */ /* Repo */
// Verification de la coherence du chemin (existe dans la conf) // Verification de la coherence du chemin (existe dans la conf)
const WrongPathRepo = 11; const WrongPathRepo = 12;
// Module non specifie dans la conf // Module non specifie dans la conf
const UnknownRepo = 12; const UnknownRepo = 13;
// Erreur dans le traitement // Erreur dans le traitement
const RepoError = 13; const RepoError = 14;
/* Database */ /* Database */
// Erreur lors de la creation d'un objet PDO (connection) // Erreur lors de la creation d'un objet PDO (connection)
const PDOConnection = 14; const PDOConnection = 15;
/* API token */ /* API token */
// Token inexistant ou faux // Token inexistant ou faux
const TokenError = 15; const TokenError = 16;
const PermissionError = 16; const PermissionError = 17;
/* Erreur d'UPLOAD */ /* Erreur d'UPLOAD */
const UploadError = 17; const UploadError = 18;
// Mauvais format de fichier // Mauvais format de fichier
const FormatError = 18; const FormatError = 19;
/* Erreur de contenu */ /* Erreur de contenu */
// Aucune donnée trouvée // Aucune donnée trouvée
const NoMatchFound = 19; const NoMatchFound = 20;
/* Erreur au niveau javascript */ /* Erreur au niveau javascript */
//const JavascriptError = 20; // -> géré en js //const JavascriptError = 20; // -> géré en js
@ -95,6 +98,7 @@
case self::InvalidFlags: return "Les spécifications (drapeaux) sont incorrects."; 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::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::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::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::WrongPathRepo: return "Le chemin de délégation est incorrect ('nomRepo/nomMethode')."; break;

View File

@ -333,7 +333,18 @@
return false; // On retourne FALSE, si erreur return false; // On retourne FALSE, si erreur
} }
/* [3] Verification de l'existence de la methode (conf)
/* [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)
=========================================================*/ =========================================================*/
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;
@ -342,7 +353,7 @@
/* [4] Enregistrement du chemin et renvoi de SUCCESS /* [5] Enregistrement du chemin et renvoi de SUCCESS
=========================================================*/ =========================================================*/
$this->path = [ $this->path = [
'module' => $module, 'module' => $module,