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

View File

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

View File

@ -1,13 +1,91 @@
<?php
namespace manager\module;
use \manager\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
class machineDefault{
/* RENVOIE LA LISTE EXHAUSTIVE DES MACHINES
*
* @return machines<Array> Liste des machines
*
*/
public static function getAll(){
// On recupere les donnees
$machines = new Repo('machine/getAll');
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
*
* @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
*
*/
public static function create($name){
/* [1] Verification de l'unicite de name
public static function create($code, $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 )
return false;
/* [2] Creation du groupe
/* [2] Creation de la machine
=========================================================*/
$insert_user = Database::getPDO()->prepare("INSERT INTO cluster(id_cluster, name)
VALUES(DEFAULT, :name)");
$insert_user->execute(array(
$insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name)
VALUES(DEFAULT, :code, :name)");
$insert_machine->execute(array(
':code' => $code,
':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
if( $check_group === false )
if( $check_machine === false )
return false;
// 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
*
*/
public static function getByName($name){
public static function getByCode($code){
// On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM cluster
WHERE name = :name");
$request = Database::getPDO()->prepare("SELECT * FROM machine
WHERE code = :code");
// On execute la requete
$request->execute(array(
':name' => $name
':code' => $code
));
// On recupere 1 seul groupe
// On recupere 1 seule machine
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
@ -139,7 +142,74 @@
// On retourne en supprimant les indices numeriques
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 #
############
- [ ] Gestion des groupes (utilisateurs/machines)
- [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)
- [ ] Conflit des id_user et id_machine dans les cluster a regler
- [ ] 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)
- [.] [/users/view] Affichage basique de liste d'elements complexes (users/machines/journal, ...)
@ -39,6 +36,11 @@
########
# 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] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes
- [x] [user::getClusters] Recuperation des groupes d'un utilisateur

View File

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