- [x] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes

- [x] [user::getClusters] Recuperation des groupes d'un utilisateur
This commit is contained in:
xdrm-brackets 2016-02-14 13:28:35 +01:00
parent a2234af7e7
commit 5b025ee58f
10 changed files with 148 additions and 10 deletions

View File

@ -245,5 +245,42 @@
return true; return true;
}insertUsersComposite(); }//insertUsersComposite();
/* RETOURNE LES GROUPES D'UN UTILISATEUR
*
*
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
*
*/
function getUserClusters(){
$id_user = 115;
// Groupes de l'utilisateur 'a'
$getUser1Clusters = new Repo('user/getClusters', array($id_user));
$user1Clusters = $getUser1Clusters->answer();
var_dump( $user1Clusters );
// On ajoute un groupe a l'utilisateur 100
$linkA = new Repo('cluster/link', array($user1Clusters[0]['id_cluster'], 100) );
var_dump( $linkA->answer() );
$getUser2Clusters = new Repo('user/getClusters', array(100));
var_dump( $getUser2Clusters->answer() );
// On retire un groupe a l'utilisateur 100
$unlinkA = new Repo('cluster/unlink', array($user1Clusters[0]['id_cluster'], 100) );
var_dump( $linkA->answer() );
$getUser2Clusters = new Repo('user/getClusters', array(100));
var_dump( $getUser2Clusters->answer() );
return true;
}//getUserClusters();
?> ?>

View File

@ -12,7 +12,7 @@
"getAll" "getAll"
], ],
"groupDefault" :[ "clusterDefault" :[
"create", "create",
"getAll" "getAll"

View File

@ -7,7 +7,7 @@
"getByCode", "getByCode",
"getByUsername", "getByUsername",
"getGroups", "getClusters",
"delete" "delete"
], ],
@ -18,7 +18,7 @@
"getAll", "getAll",
"getById", "getById",
"getGroup" "getClusters"
], ],
"cluster" :[ "cluster" :[

View File

@ -108,11 +108,15 @@
* *
*/ */
public static function delNumeric($fetchData, $oneDimension=false){ public static function delNumeric($fetchData, $oneDimension=false){
// On quitte si ce n'est pas un tableau
if( !is_array($fetchData) )
return array();
$nextEquivalent = false; // Vaut VRAI si le prochain est peut-etre un equivalent numerique $nextEquivalent = false; // Vaut VRAI si le prochain est peut-etre un equivalent numerique
/* [1] 2 dimensions /* [1] 2 dimensions
===============================================*/ ===============================================*/
if( !$oneDimension && is_array($fetchData[0]) ){ if( !$oneDimension && isset($fetchData[0]) && is_array($fetchData[0]) ){
// on supprime les doublons des entrées (indice numérique) // on supprime les doublons des entrées (indice numérique)
for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs

View File

@ -2,7 +2,7 @@
namespace manager\module; namespace manager\module;
class groupDefault{ class clusterDefault{
public static function getAll(){ public static function getAll(){

View File

@ -97,7 +97,8 @@
=========================================================*/ =========================================================*/
return array( return array(
'ModuleError' => ManagerError::Success, 'ModuleError' => ManagerError::Success,
'id_user' => $id_user 'id_user' => $id_user,
'id_cluster' => $id_group
); );
} }

View File

@ -46,6 +46,12 @@
} }
/* ASSOCIATION D'UN(E) UTILISATEUR/MACHINE A UN GROUPE /* ASSOCIATION D'UN(E) UTILISATEUR/MACHINE A UN GROUPE
* *
* @id_cluster<int> UID du groupe * @id_cluster<int> UID du groupe
@ -74,15 +80,23 @@
// On verifie si c'est un utilisateur // On verifie si c'est un utilisateur
$user_check = userRepo::getById($id_entity); $user_check = userRepo::getById($id_entity);
$is_user = ( $machine_check !== FALSE ); $is_user = ( $user_check !== FALSE );
// Si aucune entite existante, on retourne une erreur // Si aucune entite existante, on retourne une erreur
if( !$is_machine && !$is_user ) if( !$is_machine && !$is_user )
return false; return false;
/* [3] Verification que l'existente n'existe pas deja
=========================================================*/
$already_cluster_merge = self::getMerge($id_cluster, $id_entity);
/* [3] On cree l'association // Si l'association existe deja, on ne la cree donc pas
if( $already_cluster_merge !== false )
return $already_cluster_merge['id_cluster_merge'];
/* [4] On cree l'association
=========================================================*/ =========================================================*/
$link_entity = Database::getPDO()->prepare("INSERT INTO cluster_merge(id_cluster_merge, id_cluster, id_entity) $link_entity = Database::getPDO()->prepare("INSERT INTO cluster_merge(id_cluster_merge, id_cluster, id_entity)
VALUES(DEFAULT, :id_cluster, :id_entity)"); VALUES(DEFAULT, :id_cluster, :id_entity)");
@ -91,7 +105,7 @@
':id_entity' => $id_entity ':id_entity' => $id_entity
)); ));
/* [3] On retourne l'id_cluster_merge ou FALSE si erreur /* [5] On retourne l'id_cluster_merge ou FALSE si erreur
=========================================================*/ =========================================================*/
$check_cluster_merge = self::getMerge($id_cluster, $id_entity); $check_cluster_merge = self::getMerge($id_cluster, $id_entity);
@ -110,6 +124,37 @@
/* SUPPRIME UNE ASSOCIATION D'UN(E) UTILISATEUR/MACHINE A UN GROUPE
*
* @id_cluster<int> UID du groupe
* @id_entity<int> UID de la machine ou de l'utilisateur
*
* @return status<Boolean> Retourne si oui ou non l'association a bien ete supprimee
*
*/
public static function unlink($id_cluster, $id_entity){
/* [1] On redige/execute la requete
=========================================================*/
$delete_cluster_merge = Database::getPDO()->prepare("DELETE FROM cluster_merge
WHERE id_cluster = :id_cluster
AND id_entity = :id_entity");
$delete_cluster_merge->execute(array(
':id_cluster' => $id_cluster,
':id_entity' => $id_entity
));
/* [2] On verifie que l'association n'existe plus
=========================================================*/
return ( self::getMerge($id_cluster, $id_entity) === false );
}
/* RENVOIE LA LISTE DE TOUS LES GROUPES /* RENVOIE LA LISTE DE TOUS LES GROUPES
* *
* @return groups<Array> Liste des groupes de la BDD * @return groups<Array> Liste des groupes de la BDD

View File

@ -225,6 +225,36 @@
/* RENVOIE LES GROUPES AUQUEL APPARTIENT UN UTILISATEUR DONNE
*
* @id_user<int> UID de l'utilisateur en question
*
* @return clusters<Array> Retourne la liste des groupes auquel appartient l'utilisateur
*
*/
public static function getClusters($id_user){
/* [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_user
ORDER BY c.id_cluster");
$get_clusters->execute(array(
':id_user' => $id_user
));
/* [2] On retourne la liste des groupes
=========================================================*/
return Database::delNumeric( $get_clusters->fetchAll() );
}
/* SUPPRIME UN UTILISATEUR DONNE /* SUPPRIME UN UTILISATEUR DONNE
* *
* @id_user<int> UID de l'utilisateur en question * @id_user<int> UID de l'utilisateur en question
@ -256,6 +286,15 @@
} }

View File

@ -2,6 +2,16 @@
class Database_delNumeric extends \PHPUnit_Framework_TestCase{ class Database_delNumeric extends \PHPUnit_Framework_TestCase{
/* [0] Verification du type
=========================================================*/
public function testTypeInt(){
$this->assertEquals( array(), \manager\Database::delNumeric(10) );
}
public function testTypeString(){
$this->assertEquals( array(), \manager\Database::delNumeric('notarray') );
}
/* [1] Verification pour 2 dimensions /* [1] Verification pour 2 dimensions
=========================================================*/ =========================================================*/
/* (1) Global */ /* (1) Global */

View File

@ -39,6 +39,8 @@
######## ########
# FAIT # # FAIT #
######## ########
- [x] [cluster::link/unlink] Ajout/Suppression d'association des utilisateurs/machines a des groupes
- [x] [user::getClusters] Recuperation des groupes d'un utilisateur
- [x] [manager/repo/]Creation des repos - [x] [manager/repo/]Creation des repos
- [x] [user] utilisateur - [x] [user] utilisateur
- [x] [machine] machines - [x] [machine] machines