From 6f49191081de759df23ea74b8c93fa389a6ddbc0 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 14 Feb 2016 15:17:26 +0100 Subject: [PATCH] - [x] [modules/+repo/]Conflit des id_user et id_machine dans les cluster a regler - [x] [view/user] Lien "mailto" pour les mail des utilisateurs - [x] [modules/] Extension des modules aux repos --- automate.php | 2 +- config/modules.json | 27 +++-- css/container.css | 2 +- css/container.scss | 21 ++-- manager/module/clusterDefault.php | 21 ---- manager/module/machineDefault.php | 68 +++++++++++- manager/module/userDefault.php | 177 +++++++++++++++++++++++++++--- manager/repo/cluster.php | 60 ++++++---- manager/repo/machine.php | 4 +- manager/repo/user.php | 4 +- todo.md | 6 +- view/users.php | 4 +- 12 files changed, 313 insertions(+), 83 deletions(-) delete mode 100644 manager/module/clusterDefault.php diff --git a/automate.php b/automate.php index d015de4..3a3e97d 100755 --- a/automate.php +++ b/automate.php @@ -72,7 +72,7 @@ return true; - }insertMachinesFromJSON(); + }//insertMachinesFromJSON(); diff --git a/config/modules.json b/config/modules.json index b464066..5cfba9c 100755 --- a/config/modules.json +++ b/config/modules.json @@ -2,20 +2,33 @@ "userDefault" :[ "create", - "getAll" + "link", + "unlink", + "getAll", + "getById", + "getByCode", + "getByUsername", + + "getClusters", + + "delete" ], "machineDefault" :[ "create", - - "getAll" - ], - "clusterDefault" :[ - "create", + "link", + "unlink", + + "getAll", + "getById", + "getByCode", + "getByName", - "getAll" + "getClusters", + + "delete" ] } \ No newline at end of file diff --git a/css/container.css b/css/container.css index 8b6b15f..5a4daba 100755 --- a/css/container.css +++ b/css/container.css @@ -1,2 +1,2 @@ -#WRAPPER>#CONTAINER>.sub-menu-side{display:block;position:relative}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]{display:block;position:relative;width:7.5em;padding:.3em 1em .3em 2em;margin:1em;border-radius:3px;color:#5b5e63;text-shadow:1px 1px white;white-space:nowrap;transition:all .2s;cursor:pointer;overflow:hidden}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg{display:inline-block;position:absolute;left:.5em;top:50%;width:1em;height:1em;transform:translateY(-50%)}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg path{fill:#5b5e63 !important}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:hover,#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink].active{color:#121213;background-color:#d8deea;box-shadow:inset 0 0 4px #c8ced9}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:hover>.svg>svg path,#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink].active>.svg>svg path{fill:#121213 !important}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:nth-child(1){margin-top:1em}#WRAPPER>#CONTAINER>section{display:none;flex-grow:1}#WRAPPER>#CONTAINER>section.active{display:block}#WRAPPER>#CONTAINER>section.active.list{display:flex;flex-direction:column}#WRAPPER>#CONTAINER>section.active.list .inline-box{flex:1 1 1}#WRAPPER>#CONTAINER>section>.inline-box{display:inline-block;position:relative;margin:.3em 0;padding:1em;border-radius:3px;box-shadow:0 0 1px #b7b7b7;background-color:#fff}#WRAPPER>#CONTAINER>section>.inline-box .title{display:inline-block;font-size:1.15em;font-weight:bold}#WRAPPER>#CONTAINER>section>.inline-box .title>span{font-size:.8em;color:#333}#WRAPPER>#CONTAINER>section>.inline-box .code{display:inline-block;color:#777}#WRAPPER>#CONTAINER>section>.inline-box .code svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .code svg path{fill:#777 !important}#WRAPPER>#CONTAINER>section>.inline-box .mail{display:block;margin:1em;color:#777}#WRAPPER>#CONTAINER>section>.inline-box .mail svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .mail svg path{fill:#777 !important}#WRAPPER>#CONTAINER>section>.inline-box .groups{display:block;margin:1em;color:#777}#WRAPPER>#CONTAINER>section>.inline-box .groups svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .groups svg path{fill:#777 !important}#WRAPPER>#CONTAINER>section>.inline-box .groups span{display:inline-block;padding:.1em .5em;margin-right:.2em;border-radius:3px;border:1px solid #bdbdbd;box-shadow:inset 0 0 2px #fdfdfd;background-color:#f9f9f9;color:#666;cursor:default} +#WRAPPER>#CONTAINER>.sub-menu-side{display:block;position:relative}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]{display:block;position:relative;width:7.5em;padding:.3em 1em .3em 2em;margin:1em;border-radius:3px;color:#5b5e63;text-shadow:1px 1px white;white-space:nowrap;transition:all .2s;cursor:pointer;overflow:hidden}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg{display:inline-block;position:absolute;left:.5em;top:50%;width:1em;height:1em;transform:translateY(-50%)}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]>.svg>svg path{fill:#5b5e63 !important}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:hover,#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink].active{color:#121213;background-color:#d8deea;box-shadow:inset 0 0 4px #c8ced9}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:hover>.svg>svg path,#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink].active>.svg>svg path{fill:#121213 !important}#WRAPPER>#CONTAINER>.sub-menu-side>span[data-sublink]:nth-child(1){margin-top:1em}#WRAPPER>#CONTAINER>section{display:none;flex-grow:1}#WRAPPER>#CONTAINER>section.active{display:block}#WRAPPER>#CONTAINER>section.active.list{display:flex;flex-direction:column}#WRAPPER>#CONTAINER>section.active.list .inline-box{flex:1 1 1}#WRAPPER>#CONTAINER>section>.inline-box{display:inline-block;position:relative;margin:.3em 0;padding:1em;border-radius:3px;box-shadow:0 0 1px #b7b7b7;background-color:#fff}#WRAPPER>#CONTAINER>section>.inline-box a{text-decoration:none;color:inherit}#WRAPPER>#CONTAINER>section>.inline-box .title{display:inline-block;font-size:1.15em;font-weight:bold}#WRAPPER>#CONTAINER>section>.inline-box .title>span{font-size:.8em;color:#333}#WRAPPER>#CONTAINER>section>.inline-box .code{display:inline-block;color:#333}#WRAPPER>#CONTAINER>section>.inline-box .code svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .code svg path{fill:#333 !important}#WRAPPER>#CONTAINER>section>.inline-box .mail{display:block;margin:1em;color:#333}#WRAPPER>#CONTAINER>section>.inline-box .mail svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .mail svg path{fill:#333 !important}#WRAPPER>#CONTAINER>section>.inline-box .groups{display:block;margin:1em;color:#333}#WRAPPER>#CONTAINER>section>.inline-box .groups svg{display:inline-block;position:relative;margin-left:.5em;margin-right:.5em;margin-bottom:-.6em;width:1.5em;height:2em}#WRAPPER>#CONTAINER>section>.inline-box .groups svg path{fill:#333 !important}#WRAPPER>#CONTAINER>section>.inline-box .groups span{display:inline-block;padding:.1em .5em;margin-right:.2em;border-radius:3px;border:1px solid #bdbdbd;box-shadow:inset 0 0 2px #fafafa;background-color:#f9f9f9;color:#333;cursor:default} /*# sourceMappingURL=container.css.map */ diff --git a/css/container.scss b/css/container.scss index c890369..08ec517 100755 --- a/css/container.scss +++ b/css/container.scss @@ -111,6 +111,11 @@ background-color: #fff; + a{ + text-decoration: none; + color: inherit; + } + /* (1) Titre de l'element */ .title{ display: inline-block; @@ -127,7 +132,7 @@ /* (2) Code RFID */ .code{ display: inline-block; - color: #777; + color: #333; // svg (icone) svg{ @@ -140,7 +145,7 @@ height: 2em; path{ - fill: #777 !important; + fill: #333 !important; } } @@ -150,7 +155,7 @@ .mail{ display: block; margin: 1em; - color: #777; + color: #333; // svg (icone) svg{ @@ -163,7 +168,7 @@ height: 2em; path{ - fill: #777 !important; + fill: #333 !important; } } @@ -174,7 +179,7 @@ .groups{ display: block; margin: 1em; - color: #777; + color: #333; // svg (icone) svg{ @@ -187,7 +192,7 @@ height: 2em; path{ - fill: #777 !important; + fill: #333 !important; } } @@ -198,11 +203,11 @@ border-radius: 3px; border: 1px solid #bdbdbd; - box-shadow: inset 0 0 2px #fdfdfd; + box-shadow: inset 0 0 2px #fafafa; background-color: #f9f9f9; - color: #666; + color: #333; cursor: default; } diff --git a/manager/module/clusterDefault.php b/manager/module/clusterDefault.php deleted file mode 100644 index a4101ec..0000000 --- a/manager/module/clusterDefault.php +++ /dev/null @@ -1,21 +0,0 @@ - \manager\Database::delNumeric( \manager\Database::getPDO()->query("SELECT * FROM group ORDER BY id_group")->fetchAll() ) - ); - } - - - - - - } - - -?> \ No newline at end of file diff --git a/manager/module/machineDefault.php b/manager/module/machineDefault.php index 6100284..eab890f 100755 --- a/manager/module/machineDefault.php +++ b/manager/module/machineDefault.php @@ -5,6 +5,7 @@ use \manager\sessionManager; use \manager\ManagerError; use \manager\Repo; + use \manager\repo\cluster as clusterRepo; class machineDefault{ @@ -24,6 +25,9 @@ } + + + /* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD * * @code Code RFID de la machine @@ -71,7 +75,7 @@ /* [4] Association au groupe =========================================================*/ - $assoc_goup = new Repo('cluster/link', array($id_group, $id_machine)); + $assoc_goup = new Repo('cluster/link', array($id_group, $id_machine, clusterRepo::MACHINE_CLASS)); $id_assoc = $assoc_goup->answer(); // Si une erreur est retournee, on retourne une erreur @@ -93,6 +97,68 @@ + /* AJOUTE UNE MACHINE DONNEE A UN GROUPE DONNE + * + * @id_cluster UID du groupe + * @id_machine UID de la machine + * + * @return association Renvoie l'UID de l'association cree + * Renvoie FALSE si une erreur occure + * + */ + public static function link($id_cluster, $id_machine){ + /* [1] Normalisation + verification des donnees + =========================================================*/ + $correct_param = Database::check('auto_increment_id', $id_cluster); + $correct_param = $correct_param && Database::check('auto_increment_id', $id_machine); + + // Si les parametres ne sont pas corrects, on retourne une erreur + if( !$correct_param ) + return array('ModuleError' => ManagerError::ParamError); + + /* [2] Creation de l'association + =========================================================*/ + $link_machine = new Repo('cluster/link', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS)); + + return $link_machine; + + } + + + + + + /* RETIRE UNE MACHINE DONNEE A UN GROUPE DONNE + * + * @id_cluster UID du groupe + * @id_machine UID de la machine + * + * @return association Renvoie l'UID de l'association cree + * Renvoie FALSE si une erreur occure + * + */ + public static function unlink($id_cluster, $id_machine){ + /* [1] Normalisation + verification des donnees + =========================================================*/ + $correct_param = Database::check('auto_increment_id', $id_cluster); + $correct_param = $correct_param && Database::check('auto_increment_id', $id_machine); + + // Si les parametres ne sont pas corrects, on retourne une erreur + if( !$correct_param ) + return array('ModuleError' => ManagerError::ParamError); + + /* [2] Suppression de l'association + =========================================================*/ + $link_machine = new Repo('cluster/unlink', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS)); + + return $link_machine; + + } + + + + + } diff --git a/manager/module/userDefault.php b/manager/module/userDefault.php index 20b2a73..3bea210 100755 --- a/manager/module/userDefault.php +++ b/manager/module/userDefault.php @@ -5,26 +5,11 @@ use \manager\sessionManager; use \manager\ManagerError; use \manager\Repo; + use \manager\repo\cluster as clusterRepo; class userDefault{ - /* RENVOIE LA LISTE EXHAUSTIVE DES UTILISATEURS - * - * @return utilisateurs Liste des utilisateurs - * - */ - public static function getAll(){ - // On recupere les donnees - $users = new Repo('user/getAll'); - - return array( - 'users' => $users->answer() - ); - } - - - /* CREATION D'UN NOUVEL UTILISATEUR DANS LA BDD * * @code Code RFID de l'utilisateur @@ -84,7 +69,7 @@ /* [4] Association au groupe =========================================================*/ - $assoc_goup = new Repo('cluster/link', array($id_group, $id_user)); + $assoc_goup = new Repo('cluster/link', array($id_group, $id_user, clusterRepo::USER_CLASS)); $id_assoc = $assoc_goup->answer(); // Si une erreur est retournee, on retourne une erreur @@ -103,6 +88,164 @@ } + + + + /* AJOUTE UN UTILISATEUR DONNEE A UN GROUPE DONNE + * + * @id_cluster UID du groupe + * @id_user UID de l'utilisateur + * + * @return association Renvoie l'UID de l'association cree + * Renvoie FALSE si une erreur occure + * + */ + public static function link($id_cluster, $id_user){ + /* [1] Normalisation + verification des donnees + =========================================================*/ + $correct_param = Database::check('auto_increment_id', $id_cluster); + $correct_param = $correct_param && Database::check('auto_increment_id', $id_user); + + // Si les parametres ne sont pas corrects, on retourne une erreur + if( !$correct_param ) + return array('ModuleError' => ManagerError::ParamError); + + /* [2] Creation de l'association + =========================================================*/ + $link_user = new Repo('cluster/link', array($id_cluster, $id_user, clusterRepo::USER_CLASS)); + + return $link_user; + + } + + + + + + /* RETIRE UNE MACHINE DONNEE A UN GROUPE DONNE + * + * @id_cluster UID du groupe + * @id_user UID de l'utilisateur + * + * @return association Renvoie l'UID de l'association cree + * Renvoie FALSE si une erreur occure + * + */ + public static function unlink($id_cluster, $id_user){ + /* [1] Normalisation + verification des donnees + =========================================================*/ + $correct_param = Database::check('auto_increment_id', $id_cluster); + $correct_param = $correct_param && Database::check('auto_increment_id', $id_user); + + // Si les parametres ne sont pas corrects, on retourne une erreur + if( !$correct_param ) + return array('ModuleError' => ManagerError::ParamError); + + /* [2] Suppression de l'association + =========================================================*/ + $link_user = new Repo('cluster/unlink', array($id_cluster, $id_user, clusterRepo::USER_CLASS)); + + return $link_user; + + } + + + + + + /* RENVOIE LA LISTE EXHAUSTIVE DES UTILISATEURS + * + * @return utilisateurs Liste des utilisateurs + * + */ + public static function getAll(){ + // On recupere les donnees + $users = new Repo('user/getAll'); + + return array( + 'users' => $users->answer() + ); + } + + + + + + /* RENVOIE L'UTILISATEURS D'UID DONNE + * + * @id_user UID de l'utilisateur en question + * + * @return utilisateur Utilisateur d'UID donne + * + */ + public static function getById($id_user){ + // On recupere les donnees + $request = new Repo('user/getById', array($id_user)); + $answer = $request->answer(); + + // Si aucun resultat, on retourne une erreur + if( $answer === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + + return array( + 'user' => $answer + ); + } + + + + + + /* RENVOIE L'UTILISATEURS DE CODE DONNE + * + * @code Code de l'utilisateur en question + * + * @return utilisateur Utilisateur de code donne + * + */ + public static function getByCode($code){ + // On recupere les donnees + $request = new Repo('user/getByCode', array($code)); + $answer = $request->answer(); + + // Si aucun resultat, on retourne une erreur + if( $answer === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + + return array( + 'user' => $answer + ); + } + + + + + + /* RENVOIE L'UTILISATEURS D'USERNAME DONNE + * + * @username Username de l'utilisateur en question + * + * @return utilisateur Utilisateur d'username donne + * + */ + public static function getByUsername($username){ + // On recupere les donnees + $request = new Repo('user/getByUsername', array($username)); + $answer = $request->answer(); + + // Si aucun resultat, on retourne une erreur + if( $answer === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + + return array( + 'user' => $answer + ); + } + + } diff --git a/manager/repo/cluster.php b/manager/repo/cluster.php index fddf3f6..4b4d1d8 100755 --- a/manager/repo/cluster.php +++ b/manager/repo/cluster.php @@ -7,6 +7,9 @@ class cluster{ + const USER_CLASS = 0; + const MACHINE_CLASS = 1; + /* CREATION D'UN GROUPE * * @name Nom du groupe @@ -56,12 +59,13 @@ * * @id_cluster UID du groupe * @id_entity UID de la machine ou de l'utilisateur + * @class Spefication du type d'entite (0=user;1=machine) * * @return association Renvoie l'UID de l'association cree * Renvoie FALSE si une erreur occure * */ - public static function link($id_cluster, $id_entity){ + public static function link($id_cluster, $id_entity, $class){ /* [1] Verification de l'existence du groupe =========================================================*/ $group_check = self::getById($id_cluster); @@ -74,22 +78,29 @@ /* [2] Verification de l'existente de l'entite =========================================================*/ - // On verifie si c'est une machine - $machine_check = machineRepo::getById($id_entity); - $is_machine = ( $machine_check !== FALSE ); + $entity_exists = false; + /* (1) Utilisateur */ + if( $class == 0 ){ + // On verifie si c'est un utilisateur + $user_check = userRepo::getById($id_entity); + $entity_exists = ( $user_check !== FALSE ); + + /* (2) Machine */ + }elseif( $class == 1 ){ + // On verifie si c'est une machine + $machine_check = machineRepo::getById($id_entity); + $entity_exists = ( $machine_check !== FALSE ); + } - // On verifie si c'est un utilisateur - $user_check = userRepo::getById($id_entity); - $is_user = ( $user_check !== FALSE ); // Si aucune entite existante, on retourne une erreur - if( !$is_machine && !$is_user ) + if( !$entity_exists ) return false; /* [3] Verification que l'existente n'existe pas deja =========================================================*/ - $already_cluster_merge = self::getMerge($id_cluster, $id_entity); + $already_cluster_merge = self::getMerge($id_cluster, $id_entity, $class); // Si l'association existe deja, on ne la cree donc pas if( $already_cluster_merge !== false ) @@ -98,16 +109,17 @@ /* [4] On cree l'association =========================================================*/ - $link_entity = Database::getPDO()->prepare("INSERT INTO cluster_merge(id_cluster_merge, id_cluster, id_entity) - VALUES(DEFAULT, :id_cluster, :id_entity)"); + $link_entity = Database::getPDO()->prepare("INSERT INTO cluster_merge(id_cluster_merge, id_cluster, id_entity, class) + VALUES(DEFAULT, :id_cluster, :id_entity, :class)"); $link_entity->execute(array( ':id_cluster' => $id_cluster, - ':id_entity' => $id_entity + ':id_entity' => $id_entity, + ':class' => $class )); /* [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, $class); // Si n'existe pas on retourne FALSE if( $check_cluster_merge === false ) @@ -128,25 +140,28 @@ * * @id_cluster UID du groupe * @id_entity UID de la machine ou de l'utilisateur + * @class Spefication du type d'entite (0=user;1=machine) * * @return status Retourne si oui ou non l'association a bien ete supprimee * */ - public static function unlink($id_cluster, $id_entity){ + public static function unlink($id_cluster, $id_entity, $class){ /* [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"); + AND id_entity = :id_entity + AND class = :class"); $delete_cluster_merge->execute(array( ':id_cluster' => $id_cluster, - ':id_entity' => $id_entity + ':id_entity' => $id_entity, + ':class' => $class )); /* [2] On verifie que l'association n'existe plus =========================================================*/ - return ( self::getMerge($id_cluster, $id_entity) === false ); + return ( self::getMerge($id_cluster, $id_entity, $class) === false ); } @@ -257,25 +272,28 @@ * * @id_cluster UID du groupe * @id_entity UID de la machine ou de l'utilisateur + * @class Spefication du type d'entite (0=user;1=machine) * * @return association Renvoie l'UID de l'association cree * Renvoie FALSE si une erreur occure * */ - public static function getMerge($id_cluster, $id_entity){ + public static function getMerge($id_cluster, $id_entity, $class){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM cluster_merge WHERE id_cluster = :id_cluster - AND id_entity = :id_entity"); + AND id_entity = :id_entity + AND class = :class"); // On execute la requete $request->execute(array( ':id_cluster' => $id_cluster, - ':id_entity' => $id_entity + ':id_entity' => $id_entity, + ':class' => $class )); // On recupere 1 seule relation - $answer = $request->fetch(); + $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) diff --git a/manager/repo/machine.php b/manager/repo/machine.php index e48dcd5..6f19ed7 100644 --- a/manager/repo/machine.php +++ b/manager/repo/machine.php @@ -202,9 +202,11 @@ $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 + AND cm.class = :class ORDER BY c.id_cluster"); $get_clusters->execute(array( - ':id_machine' => $id_machine + ':id_machine' => $id_machine, + ':class' => clusterRepo::MACHINE_CLASS )); /* [2] On retourne la liste des groupes diff --git a/manager/repo/user.php b/manager/repo/user.php index 8031d05..60c515a 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -238,9 +238,11 @@ $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 + AND cm.class = :class ORDER BY c.id_cluster"); $get_clusters->execute(array( - ':id_user' => $id_user + ':id_user' => $id_user, + ':class' => clusterRepo::USER_CLASS )); /* [2] On retourne la liste des groupes diff --git a/todo.md b/todo.md index 80d1ed6..eda6cd4 100755 --- a/todo.md +++ b/todo.md @@ -13,8 +13,6 @@ ############ # EN COURS # ############ -- [ ] 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, ...) @@ -36,11 +34,15 @@ ######## # FAIT # ######## +- [x] [modules/+repo/]Conflit des id_user et id_machine dans les cluster a regler +- [x] [view/user] Lien "mailto" pour les mail des utilisateurs +- [x] [modules/] Extension des modules aux repos - [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/machines] Affichage des groupes des machines - [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 diff --git a/view/users.php b/view/users.php index f3b3ad9..65cf32f 100755 --- a/view/users.php +++ b/view/users.php @@ -94,9 +94,9 @@ echo ""; echo ResourceDispatcher::getResource('f/svg/mail/st/container'); - echo ""; + echo ""; echo $user['mail']; - echo ""; + echo ""; echo""; // Groupes de la machine