- [x] Gestion des groupes (utilisateurs/machines)

- [x] bdd
	- [x] Creation d'un groupe individuel pour utilisateurs + association
	- [x] Creation d'un groupe individuel pour machines
	- [x] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine)
This commit is contained in:
xdrm-brackets 2016-02-14 14:16:47 +01:00
parent 863e27f1db
commit 4aab2a4c52
6 changed files with 196 additions and 44 deletions

View File

@ -42,7 +42,7 @@
return true; return true;
}insertUsersFromJSON(); }//insertUsersFromJSON();
@ -60,24 +60,19 @@
// Pour chaque entree // Pour chaque entree
foreach( $json as $machine ){ foreach( $json as $machine ){
$insertRequest = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name) // Creation de la requete
VALUES( $request = new ModuleRequest('machineDefault/create', array(
DEFAULT, $machine['code'],
:code, $machine['name']
:name
)");
$status = $insertRequest->execute(array(
':code' => $machine['code'],
':name' => $machine['name']
)); ));
$answer = $request->dispatch();
var_dump( $status ); // Debug error
var_dump( $answer->error == ManagerError::Success );
} }
return true; return true;
}//insertMachinesFromJSON(); }insertMachinesFromJSON();

View File

@ -17,6 +17,8 @@
"getAll", "getAll",
"getById", "getById",
"getByCode",
"getByName",
"getClusters" "getClusters"
], ],

View File

@ -1,13 +1,91 @@
<?php <?php
namespace manager\module; namespace manager\module;
use \manager\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
class machineDefault{ class machineDefault{
/* RENVOIE LA LISTE EXHAUSTIVE DES MACHINES
*
* @return machines<Array> Liste des machines
*
*/
public static function getAll(){ public static function getAll(){
// On recupere les donnees
$machines = new Repo('machine/getAll');
return array( return array(
'machines' => \manager\Database::delNumeric( \manager\Database::getPDO()->query("SELECT * FROM machine ORDER BY id_machine")->fetchAll() ) 'machines' => $machines->answer()
);
}
/* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD
*
* @code<String> Code RFID de la machine
* @name<String> Identifiant de la machine
*
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
*
*/
public static function create($code=null, $name=null){
/* [1] Normalisation + verification des donnees
=========================================================*/
$correct_param = Database::check('machine.code', $code);
$correct_param = $correct_param && Database::check('machine.name', $name);
// Si les parametres ne sont pas corrects, on retourne une erreur
if( !$correct_param )
return array('ModuleError' => ManagerError::ParamError);
/* [2] Creation de la machine
=========================================================*/
$create_machine = new Repo('machine/create', array($code, $name) );
$id_machine = $create_machine->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_machine === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [3] Creation du groupe de meme nom que la machine
=========================================================*/
$create_group = new Repo('cluster/create', array($name) );
$id_group = $create_group->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_group === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [4] Association au groupe
=========================================================*/
$assoc_goup = new Repo('cluster/link', array($id_group, $id_machine));
$id_assoc = $assoc_goup->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_assoc === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [5] Gestion du retour
=========================================================*/
return array(
'ModuleError' => ManagerError::Success,
'id_machine' => $id_machine,
'id_cluster' => $id_group
); );
} }

View File

@ -8,40 +8,43 @@
/* CREATION D'UNE MACHINE /* CREATION D'UNE MACHINE
* *
* @name<String> Nom du groupe * @code<String> Code de la machine
* @name<String> Nom de la machine
* *
* @return id_user<int> Renvoie l'UID du groupe cree * @return id_machine<int> Renvoie l'UID de la machine cree
* Renvoie FALSE si une erreur occure * Renvoie FALSE si une erreur occure
* *
*/ */
public static function create($name){ public static function create($code, $name){
/* [1] Verification de l'unicite de name /* [1] Verification de l'unicite de code+name
=========================================================*/ =========================================================*/
$check_unique = ( self::getByName($name) === false ); $check_unique = ( self::getByCode($code) === false );
$check_unique = $check_unique && ( self::getByName($name) === false );
// Si un groupe a deja ce nom, on renvoie une erreur // Si une machine a deja ce code/nom, on renvoie une erreur
if( !$check_unique ) if( !$check_unique )
return false; return false;
/* [2] Creation du groupe /* [2] Creation de la machine
=========================================================*/ =========================================================*/
$insert_user = Database::getPDO()->prepare("INSERT INTO cluster(id_cluster, name) $insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name)
VALUES(DEFAULT, :name)"); VALUES(DEFAULT, :code, :name)");
$insert_user->execute(array( $insert_machine->execute(array(
':code' => $code,
':name' => $name ':name' => $name
)); ));
/* [3] On retourne l'id_group ou FALSE si erreur /* [3] On retourne l'id_machine ou FALSE si erreur
=========================================================*/ =========================================================*/
$check_group = self::getByName($name); $check_machine = self::getByCode($code);
// Si n'existe pas on retourne FALSE // Si n'existe pas on retourne FALSE
if( $check_group === false ) if( $check_machine === false )
return false; return false;
// Sinon, on retourne son id // Sinon, on retourne son id
return $check_group['id_cluster']; return $check_machine['id_machine'];
} }
@ -110,26 +113,26 @@
/* RENVOIE LA MACHINE DE NOM DONNE /* RENVOIE LA MACHINE DE CODE DONNE
* *
* @name<String> Nom du groupe en question * @code<String> Code de la machine en question
* *
* @return groupe<Array> Renvoie le groupe de nom donne si existe * @return machine<Array> Renvoie la machine de code donne si existe
* @return error<Boolean> Retourne FALSE si aucun resultat * @return error<Boolean> Retourne FALSE si aucun resultat
* *
*/ */
public static function getByName($name){ public static function getByCode($code){
// On ecrit la requete // On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM cluster $request = Database::getPDO()->prepare("SELECT * FROM machine
WHERE name = :name"); WHERE code = :code");
// On execute la requete // On execute la requete
$request->execute(array( $request->execute(array(
':name' => $name ':code' => $code
)); ));
// On recupere 1 seul groupe // On recupere 1 seule machine
$answer = $request->fetch(); $answer = $request->fetch();
// Gestion d'erreur -> aucun resultat // Gestion d'erreur -> aucun resultat
@ -139,7 +142,74 @@
// On retourne en supprimant les indices numeriques // On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true ); return Database::delNumeric( $answer, true );
}
/* RENVOIE LA MACHINE DE NOM DONNE
*
* @name<String> Nom de la machine en question
*
* @return machine<Array> Renvoie la machine de nom donne si existe
* @return error<Boolean> Retourne FALSE si aucun resultat
*
*/
public static function getByName($name){
// On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM machine
WHERE name = :name");
// On execute la requete
$request->execute(array(
':name' => $name
));
// On recupere 1 seule machine
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* RENVOIE LES GROUPES AUQUEL APPARTIENT UNE MACHINE DONNEE
*
* @id_machine<int> UID de la machine en question
*
* @return clusters<Array> Retourne la liste des groupes auquel appartient la machine
*
*/
public static function getClusters($id_machine){
/* [1] On redige/execute la requete
=========================================================*/
$get_clusters = Database::getPDO()->prepare("SELECT c.* FROM cluster as c, cluster_merge as cm
WHERE cm.id_cluster = c.id_cluster
AND cm.id_entity = :id_machine
ORDER BY c.id_cluster");
$get_clusters->execute(array(
':id_machine' => $id_machine
));
/* [2] On retourne la liste des groupes
=========================================================*/
return Database::delNumeric( $get_clusters->fetchAll() );
} }

12
todo.md
View File

@ -13,11 +13,8 @@
############ ############
# EN COURS # # EN COURS #
############ ############
- [ ] Gestion des groupes (utilisateurs/machines) - [ ] Conflit des id_user et id_machine dans les cluster a regler
- [x] bdd
- [x] Creation d'un groupe individuel pour utilisateurs + association
- [ ] Creation d'un groupe individuel pour machines
- [ ] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine)
- [ ] Prendre en compte au lieu de SERVER['HTTP_HOST'] l'hote et son dossier source - [ ] Prendre en compte au lieu de SERVER['HTTP_HOST'] l'hote et son dossier source
- [ ] Gestion de l'erreur de chargement ou erreur de nav (page-manager) - [ ] Gestion de l'erreur de chargement ou erreur de nav (page-manager)
- [.] [/users/view] Affichage basique de liste d'elements complexes (users/machines/journal, ...) - [.] [/users/view] Affichage basique de liste d'elements complexes (users/machines/journal, ...)
@ -39,6 +36,11 @@
######## ########
# FAIT # # FAIT #
######## ########
- [x] Gestion des groupes (utilisateurs/machines)
- [x] bdd
- [x] Creation d'un groupe individuel pour utilisateurs + association
- [x] Creation d'un groupe individuel pour machines
- [x] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine)
- [x] [view/users] Affichage des groupes des utilisateurs - [x] [view/users] Affichage des groupes des utilisateurs
- [x] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes - [x] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes
- [x] [user::getClusters] Recuperation des groupes d'un utilisateur - [x] [user::getClusters] Recuperation des groupes d'un utilisateur

View File

@ -3,6 +3,7 @@
use \manager\ModuleRequest; use \manager\ModuleRequest;
use \manager\ManagerError; use \manager\ManagerError;
use \manager\ResourceDispatcher; use \manager\ResourceDispatcher;
use \manager\Repo;
?> ?>
<!-- [1] Gestion du sous-menu de gauche --> <!-- [1] Gestion du sous-menu de gauche -->
@ -68,6 +69,9 @@
// Si aucune erreur, on affiche les resultats // Si aucune erreur, on affiche les resultats
else{ else{
foreach( $answer->get('machines') as $machine){ foreach( $answer->get('machines') as $machine){
$clusters = new Repo('machine/getClusters', array($machine['id_machine']));
$clusters = $clusters->answer();
echo "<article class='inline-box'>"; echo "<article class='inline-box'>";
// Prenom Nom // Prenom Nom
echo "<span class='title'>".$machine['name']."</span>"; echo "<span class='title'>".$machine['name']."</span>";
@ -85,8 +89,9 @@
echo "<span class='groups'>"; echo "<span class='groups'>";
echo ResourceDispatcher::getResource('f/svg/group/st/container'); echo ResourceDispatcher::getResource('f/svg/group/st/container');
echo "<span>a</span>"; if( $clusters != false )
echo "<span>a</span>"; foreach($clusters as $cluster)
echo "<span>".$cluster['name']."</span>";
echo"</span>"; echo"</span>";