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 c045de0f77
commit 6797a2d4ff
3 changed files with 36 additions and 20 deletions

View File

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

View File

@ -333,7 +333,18 @@
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
$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 = [
'module' => $module,