From 04540bb09224cbf644a82aad60604b9fa52ec19e Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 11 Feb 2016 16:00:41 +0100 Subject: [PATCH] Modifications en cours --- automate.php | 81 +++++++++++++++--- config/modules.json | 9 +- config/repositories.json | 9 +- index.php | 7 +- manager/Database.php | 64 +++++++++++++- ...neDefaultModule.php => machineDefault.php} | 2 +- manager/module/userDefault.php | 48 +++++++++++ manager/module/userDefaultModule.php | 21 ----- manager/repo/user.php | 84 ++++++++++++++++++- todo.md | 2 + view/machines.php | 2 +- view/users.php | 2 +- 12 files changed, 285 insertions(+), 46 deletions(-) rename manager/module/{machineDefaultModule.php => machineDefault.php} (89%) create mode 100755 manager/module/userDefault.php delete mode 100755 manager/module/userDefaultModule.php diff --git a/automate.php b/automate.php index 47b7f65..21cf93d 100755 --- a/automate.php +++ b/automate.php @@ -108,7 +108,7 @@ function selectUsers(){ // Creation de la requete - $requete = new manager\ModuleRequest('userDefaultModule/getAll'); + $requete = new manager\ModuleRequest('userDefault/getAll'); $answer = $requete->dispatch(); var_dump( \manager\ManagerError::explicit($answer->error) ); @@ -132,7 +132,7 @@ function selectMachines(){ // Creation de la requete - $requete = new manager\ModuleRequest('machineDefaultModule/getAll'); + $requete = new manager\ModuleRequest('machineDefault/getAll'); $answer = $requete->dispatch(); var_dump( \manager\ManagerError::explicit($answer->error) ); @@ -158,15 +158,15 @@ function displayUsers(){ // Creation de la requete - $request = new \manager\ModuleRequest('userDefaultModule/getAll'); + $request = new \manager\ModuleRequest('userDefault/getAll'); $answer = $request->dispatch(); + // Debug error - var_dump( $answer->error ); - var_dump( \manager\ManagerError::explicit($answer->error) ); + if( $answer->error != \manager\ManagerError::Success ) + var_dump( \manager\ManagerError::explicit($answer->error) ); - $users = $answer->get('users'); - - var_dump( $users ); + // display result + var_dump( $answer->getAll() ); return true; @@ -210,7 +210,8 @@ function testRepoDispatcher(){ // Creation d'une requete en objet - $req1 = new manager\Repo('user/get', array('19')); + $req1 = new manager\Repo('user/getById', array('19')); + // $req1 = new manager\Repo('user/getByCode', array('92-55-B9-B3')); var_dump( $req1->answer() ); if( $req1->error != manager\ManagerError::Success ) @@ -219,7 +220,67 @@ return true; - }testRepoDispatcher(); + }//testRepoDispatcher(); + + + + + + + /* INSERTION (COMPOSITE) DES UTILISATEURS DE LA BDD + * + * + * @return status TRUE si aucune erreur, sinon FALSE + * + */ + function insertUsersComposite(){ + + // Creation de la requete + $request = new \manager\ModuleRequest('userDefault/create', array('92-55-B9-B3', 'b', 'c', 'd', 'e', 'f', 'g') ); + $answer = $request->dispatch(); + // Debug error + var_dump( $answer->error ); + var_dump( \manager\ManagerError::explicit($answer->error) ); + + var_dump( $answer->getAll() ); + + return true; + + }//insertUsersComposite(); + + + + + + + /* TEST DU CHECKER + * + * + * @return status TRUE si aucune erreur, sinon FALSE + * + */ + function testDatabaseChecker(){ + + /* (1) Code RFID */ + var_dump('user.code'); + var_dump( \manager\Database::check('user.code', '01-23-AB-CD' ) ); + var_dump( \manager\Database::check('user.code', '01-23-45-67-89-AB' ) ); + var_dump( \manager\Database::check('user.code', '01-23-AB-CG' ) ); + var_dump( \manager\Database::check('user.code', '01-23-45-67-89-AB-CD' ) ); + + /* (2) Username / FirstName / Lastname */ + var_dump('user.username ; user.firstname ; user.lastname'); + + /* (3) Adresse mail */ + var_dump('user.mail'); + + /* (4) Password sha1 hash */ + var_dump('user.password'); + + + return true; + + }testDatabaseChecker(); ?> \ No newline at end of file diff --git a/config/modules.json b/config/modules.json index ab4dbd4..a98abea 100755 --- a/config/modules.json +++ b/config/modules.json @@ -1,9 +1,14 @@ { - "userDefaultModule" :[ + "userDefault" :[ + "create", + "getAll" + ], - "machineDefaultModule" :[ + "machineDefault" :[ + "create", + "getAll" ] diff --git a/config/repositories.json b/config/repositories.json index 51f5bf2..02c919b 100755 --- a/config/repositories.json +++ b/config/repositories.json @@ -1,8 +1,13 @@ { "user" :[ - "get", + "create", + + "getById", + "getByCode", "getAll", - "getGroup" + "getGroup", + + "delete" ], "machine" :[ diff --git a/index.php b/index.php index a06b3ab..f2af661 100755 --- a/index.php +++ b/index.php @@ -28,12 +28,7 @@ $R->get('settings(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); // nomPage -> nomPage/ - $R->get('dashboard', function(){ header('Location: /dashboard/'); }); - $R->get('profile', function(){ header('Location: /profile/'); }); - $R->get('machines', function(){ header('Location: /machines/'); }); - $R->get('users', function(){ header('Location: /users/'); }); - $R->get('analytics', function(){ header('Location: /analytics/'); }); - $R->get('settings', function(){ header('Location: /settings/'); }); + // $R->get('dashboard/', function(){ include __ROOT__.'/view.php'; }); // $R->get('machines/', function(){ include __ROOT__.'/view.php'; }); diff --git a/manager/Database.php b/manager/Database.php index 088da3d..0c7b099 100755 --- a/manager/Database.php +++ b/manager/Database.php @@ -67,6 +67,7 @@ /* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD * * @fetchData le résultat d'une $requeteSQL->fetchAll() + * @oneDimension FAUX <=> fetchAll ; VRAI <=> fetch * * @return newFetchData retourne le tableau donné en paramètre mais sans les valeurs à clés numériques * @@ -107,6 +108,67 @@ return $fetchData; } - } + + //////////////////////////////////////////////////////////////// + // _ __ _ _ _ + // __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___ + // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __| + // \ V / __/ | | | _| | (_| (_| | |_| | (_) | | | \__ \ + // \_/ \___|_| |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/ + // + //////////////////////////////////////////////////////////////// + + + /* VERIFICATIONS DES TYPES UTILES GENERIQUES + * + * @type Type que l'on veut verifier + * @value Valeur a verifier + * + * @return match Retourne si oui ou non la valeur @value est du bon type @type + * + */ + public static function check($type, $value){ + $checker = !is_null($value); + + switch($type){ + /* (1) Global */ + case 'auto_increment_id': + return $checker && is_numeric($value) && $value <= 2147483647 && $value >= -2147483647; + break; + + /* (2) Utilisateur */ + case 'user.code': + return $checker && is_string($value) && preg_match('/^[\dA-F]{2}(\-[\dA-F]{2}){3,5}$/i', $value); + break; + case 'user.username': case 'user.firstname': case 'user.lastname': + return $checker && is_string($value) && preg_match('/^[a-z -]{3,30}$/i', $value); + break; + case 'user.mail': + return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value); + break; + case 'user.password': + return $checker && is_numeric($value) && preg_match('/^[\da-f]{40}$/i', $value); + break; + + /* (3) Machine */ + case 'groupe.nom': + return $checker && is_string($value) && preg_match('/^[a-z0-9 -]{1,10}$/i', $value); + break; + + /* (4) Groupe */ + case 'formation.code': + return $checker && is_string($value) && preg_match('/[\w]{0,10}/i', $value); + break; + case 'formation.nom': + return $checker && is_string($value) && preg_match('/[\w ]{0,100}/i', $value); + break; + } + + return $checker; + + } + + + } ?> diff --git a/manager/module/machineDefaultModule.php b/manager/module/machineDefault.php similarity index 89% rename from manager/module/machineDefaultModule.php rename to manager/module/machineDefault.php index aae366f..ded3c61 100755 --- a/manager/module/machineDefaultModule.php +++ b/manager/module/machineDefault.php @@ -2,7 +2,7 @@ namespace manager\module; - class machineDefaultModule{ + class machineDefault{ public static function getAll(){ diff --git a/manager/module/userDefault.php b/manager/module/userDefault.php new file mode 100755 index 0000000..a6079fe --- /dev/null +++ b/manager/module/userDefault.php @@ -0,0 +1,48 @@ + Liste des utilisateurs + * + */ + public static function getAll(){ + // On recupere les donnees + $users = new \manager\Repo('user/getAll'); + + return array( + 'users' => $users->answer() + ); + } + + + + /* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD + * + * @code Code RFID de l'utilisateur + * @username Identifiant l'utilisateur + * @firstname Prenom de l'utilisateur + * @lastcode Nom de l'utilisateur + * @mail Adresse email de l'utilisateur + * @password Mot de passe de l'utilisateur + * @status Status de l'utilisateur + * + * @return status Retourne si oui ou non, tout s'est bien passe + * + */ + public static function create($code, $username, $firstname, $lastname, $mail, $password, $status){ + + $request = new \manager\Repo('user/create', array($code, $username, $firstname, $lastname, $mail, $password, $status) ); + + return $request->answer(); + } + + + } + + +?> \ No newline at end of file diff --git a/manager/module/userDefaultModule.php b/manager/module/userDefaultModule.php deleted file mode 100755 index c0d6e64..0000000 --- a/manager/module/userDefaultModule.php +++ /dev/null @@ -1,21 +0,0 @@ - $users->answer() - ); - } - - - } - - -?> \ No newline at end of file diff --git a/manager/repo/user.php b/manager/repo/user.php index 1c5a23e..926dacb 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -22,13 +22,26 @@ } + + + + + + + + + + + /* RENVOIE L'UTILISATEUR D'ID DONNE * + * @id Id de l'utilisateur en question + * * @return utilisateur Renvoie l'utilisateur d'id donne si existe * @return error Retourne FALSE si aucun resultat * */ - public static function get($id){ + public static function getById($id){ // On ecrit la requete $request = \manager\Database::getPDO()->prepare("SELECT * FROM user WHERE id_user = :id"); @@ -53,6 +66,75 @@ + + + + + + + + + /* RENVOIE L'UTILISATEUR DE CODE DONNE + * + * @code Code de l'utilisateur en question + * + * @return utilisateur Renvoie l'utilisateur de code donne si existe + * @return error Retourne FALSE si aucun resultat + * + */ + public static function getByCode($code){ + // On ecrit la requete + $request = \manager\Database::getPDO()->prepare("SELECT * FROM user + WHERE code = :code"); + + // On execute la requete + $request->execute(array( + ':code' => $code + )); + + // On recupere 1 seul utilisateur + $answer = $request->fetch(); + + // Gestion d'erreur -> aucun resultat + if( $answer == null ) + return false; + + // On retourne en supprimant les indices numeriques + return \manager\Database::delNumeric( $answer, true ); + } + + + + + + + + + /* CREATION D'UN UTILISATEUR ET DE SON GROUPE INDIVIDUEL + * + * @code Code RFID de l'utilisateur + * @username Identifiant l'utilisateur + * @firstname Prenom de l'utilisateur + * @lastcode Nom de l'utilisateur + * @mail Adresse email de l'utilisateur + * @password Mot de passe de l'utilisateur + * @status Status de l'utilisateur + * + * @return nomRetour Description du retour + * + */ + public static function create($code, $username, $firstname, $lastname, $mail, $password, $status){ + /* [1] Creation de l'utilisateur (unicite de l'username) + =========================================================*/ + $check_unique = ( self::getByCode($code) == false ); + + var_dump($check_unique); + + } + + + + } diff --git a/todo.md b/todo.md index 660e164..3d87446 100755 --- a/todo.md +++ b/todo.md @@ -13,7 +13,9 @@ ############ # EN COURS # ############ +- [ ] [Database] Checker de type - [ ] Gestion des groupes (utilisateurs/machines) + - [x] bdd - [ ] Creation d'un groupe individuel pour utilisateurs - [ ] Creation d'un groupe individuel pour machines - [ ] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine) diff --git a/view/machines.php b/view/machines.php index 6e6327e..e681fa5 100755 --- a/view/machines.php +++ b/view/machines.php @@ -52,7 +52,7 @@ // On recupere toutes les machines debug(); - $request = new \manager\ModuleRequest('machineDefaultModule/getAll'); // On utilise la methode 'getAll' du module 'machineDefaultModule' + $request = new \manager\ModuleRequest('machineDefault/getAll'); // On utilise la methode 'getAll' du module 'machineDefault' $answer = $request->dispatch(); // On recupere la reponse echo "
"; diff --git a/view/users.php b/view/users.php index f9f1796..7403533 100755 --- a/view/users.php +++ b/view/users.php @@ -57,7 +57,7 @@ // On recupere tous les utilisateurs debug(); - $request = new \manager\ModuleRequest('userDefaultModule/getAll'); // On utilise la methode 'getAll' du module 'userDefaultModule' + $request = new \manager\ModuleRequest('userDefault/getAll'); // On utilise la methode 'getAll' du module 'userDefault' $answer = $request->dispatch(); // On recupere la reponse echo "
";