BugReport : plateforme de remontée d'incidents
Documentations techniques - Sommaire :
- Gestion des Droits
Documentations de supports- Sommaire :
Documentations de tests - Sommaire :
Gestion des droits
1- Fonctionnalités
2- Variables de session ($_SESSION)
Nom | Type | Descriptif |
---|---|---|
$_SESSION["selectedModules1"] | Tableau d'entiers | Ids des modules sélectionnés |
$_SESSION["selectedGroupes1"] | Tableau d'entiers | Ids des groupes sélectionnés |
$_SESSION["selectedModules2"] | Tableau d'entiers | Ids des modules sélectionnés |
$_SESSION["selectedDroits2"] | Tableau d'entiers | Ids des droits sélectionnés |
$_SESSION["selectedGroupes2"] | Tableau d'entiers | Ids des groupes sélectionnés |
$_SESSION["ckAllGM"] | Booléen | valeur de la checkbox ckAll |
3- Classes métiers
4- Vues
4.1 vDroits
1 2 3 4 5 6 7 8 9 10 11 12 |
< div id = "choixd" > < form id = "frmAddGroup" name = "frmAddGroup" onsubmit = "return false;" > < fieldset > < legend >Gestion des droits</ legend > < input type = "radio" name = "choix" id = "choixG" value = "groupe" checked> Par groupes< br > < input type = "radio" name = "choix" id = "choixM" value = "module" > Par modules< br > </ fieldset > </ form > </ div > <?php echo $data [ "js" ]; |
4.2 vDroitsParGroupes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
< div id = "droitparGroupe" > < fieldset class = "cadre" > < legend > Gestion des droits par les groupes :</ legend > < table width = "100%" > < td width = "50%" style = "background:#ffffff" > < fieldset class = "cadre" > < legend > Groupes :</ legend > < table id = "groupesTable" style = "float:left" > <?php Gui::show( $data [ "groupes" ], "droitGroupe" ) ?> </ table > </ fieldset > </ td > < td width = "50%" style = "background:#ffffff" > < fieldset class = "cadre" > < legend > Modules :</ legend > < table id = "modulesTable" > <?php Gui::show( $data [ "modules" ], "droitModule" ) ?> </ table > </ fieldset > </ td > </ table > < div id = "multi" >< b >Pour la sélection :</ b > < a href = "#" class = "add" id = "btAddModuleGroupe" name = "btAddModuleGroupe" title = "Affecter les modules sélectionnées" >Affecter</ a > < a href = "#" class = "delete" id = "btDeleteModuleGroupe" name = "btDeleteModuleGroupe" title = "Supprimer les relations sélectionnées" >Supprimer</ a > </ div > </ div > </ fieldset > </ div > <?php echo $data [ "js" ]; ?> |
4.3 vDroitParModules
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< div id = "droitparGroupe" > < fieldset class = "cadre" > < legend > Gestion des droits par les modules :</ legend > < table width = "100%" > < td width = "50%" style = "background:#ffffff" > < fieldset class = "cadre" > < legend > Modules :</ legend > < table id = "groupesTable" style = "float:left" > <?php Gui::show( $data [ "modules" ], "droitModule" ) ?> </ table > </ fieldset > </ td > < td width = "50%" style = "background:#ffffff" > < fieldset class = "cadre" > < legend > Groupes :</ legend > < table id = "modulesTable" > <?php Gui::show( $data [ "groupes" ], "droitGroupe" ) ?> </ table > </ fieldset > </ td > </ table > < div id = "multi" >< b >Pour la sélection :</ b > < a href = "#" class = "add" id = "btAddGroupeModule" name = "btAddGroupeModule" title = "Affecter les modules sélectionnées" >Affecter</ a > </ div > </ div > </ fieldset > </ div > <?php echo $data [ "js" ]; ?> |
5- Contrôleur
5.1 cDroit/index
Fonctionnalité | Descriptif |
---|---|
Gestion des Droits | Contrôleur de gestion des Droits |
Appel du contrôleur refresh |
1 2 3 |
public function index(){ $this ->refresh(); } |
5.2 cDroit/refresh
Fonctionnalité | Descriptif |
---|---|
Liste des droits | Utilisé pour l'affichage initial et le rafraîchissement après une modification |
Mise en place logique client
#operation -> show
#choixG -> choix par groupe
#choixM -> choix par module
|
|
Passage de variables($data[]) et affichage de la vue vDroits |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public function refresh(){ $js =JsUtils::doSomethingOn( "#operation" , "show" ); $js .=JsUtils::get( "cDroit/parGroupe" , "{}" , "#operation" ); $js .=JsUtils::postAndBindTo( "#choixG" , "click" , "cDroit/parGroupe" , '{}' , "#operation" ,NULL, "value" ); $js .=JsUtils::postAndBindTo( "#choixM" , "click" , "cDroit/parModule" , '{}' , "#operation" ,NULL, "value" ); $js .=JsUtils::doSomeThingAndBindTo( "#choixG" , "click" , "#operation2" , "hide" ,200); $js .=JsUtils::doSomeThingAndBindTo( "#choixM" , "click" , "#operation2" , "hide" ,200); $js .=JsUtils::doSomeThingAndBindTo( "#choixG" , "click" , "#operation3" , "hide" ,200); $js .=JsUtils::doSomeThingAndBindTo( "#choixM" , "click" , "#operation3" , "hide" ,200); $data = array ( "js" => $js ); $this ->loadView( "vDroits" , $data ); } |
5.3 cDroit/parGroupe
Fonctionnalité | Descriptif |
---|---|
Liste des applications | Utilisé pour l'affichage par groupe |
Chargement des groupes et des modules $apps | |
Application de la sélection ddes groupes et des modules | |
Mise en place logique client
.ckGroupe -> cDroit/selectGroupeModule
.ckModule -> cDroit/selectGroupeModule
#btAddModuleGroupe -> bouton d'affectation de module a un groupe
#btDeleteModuleGroupe -> bouton de désaffectation d'un module a un groupe
|
|
Passage de variables($data[]) et affichage de la vue vDroitsParGroupes |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public function parGroupe(){ // On charge les groupes et les modules $groupes =DAO::getAll( "Groupe" ); $modules =DAO::getAll( "Module" ); // On applique la sélection de groupe et de modules $selectedGroupes1 =SessionUtils::getArray( "selectedGroupes1" ); $selectedModules1 =SessionUtils::getArray( "selectedModules1" ); $js =JsUtils::getAndBindTo( ".ckGroupe" , "click" , "cDroit/selectGroupeModule" , "{}" , "#message" ); $js .=JsUtils::setChecked( "ckGroupe" , $selectedGroupes1 ); $js .=JsUtils::doSomeThingAndBindTo( ".ckGroupe" , "click" , "#operation2" , "show" ,200); $js .=JsUtils::doSomeThingAndBindTo( ".ckGroupe" , "click" , "#operation3" , "hide" ,200); $js .=JsUtils::getAndBindTo( ".ckModule" , "click" , "cDroit/selectGroupeModule" , "{}" , "#message" ); $js .=JsUtils::setChecked( "ckModule" , $selectedModules1 ); $js .=JsUtils::doSomeThingAndBindTo( ".ckModule" , "click" , "#operation2" , "show" ,200); $js .=JsUtils::doSomeThingAndBindTo( ".ckModule" , "click" , "#operation3" , "hide" ,200); $js .=JsUtils::postAndBindTo( "#btAddModuleGroupe" , "click" , "cDroit/addModuleGroupe" , "{}" , "#message" ); $js .=JsUtils::postAndBindTo( "#btDeleteModuleGroupe" , "click" , "cDroit/deleteConfModuleGroupe" , "{}" , "#operation3" ); $js .=JsUtils::doSomeThingAndBindTo( "#btDeleteModuleGroupe" , "click" , "#operation3" , "show" ,200); if ((! empty ( $selectedGroupes1 )) AND (! empty ( $selectedModules1 ))){ echo JsUtils::doSomethingOn( "#multi" , "show" ); } else { echo JsUtils::doSomethingOn( "#multi" , "hide" ); } $data = array ( "js" => $js , "groupes" => $groupes , "modules" => $modules ); $this ->loadView( "vDroitsParGroupes" , $data ); } |
5.4 cDroit/selectGroupeModule
Fonctionnalité | Descriptif |
---|---|
nombre de modules/groupes sélectionnés | Permet de compter le nombre de modules/groupes sélectionnés |
Si Groupe est sélectionné | |
On compte le nombre de groupes sélectionnés
On affiche le nombre de groupes sélectionnés
|
|
Sinon Module est sélectionné | |
On compte le nombre de modules sélectionnés
On affiche le nombre de modules sélectionnés
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public function selectGroupeModule( $id ){ if (preg_match( "#^ckGroupe#" , $id [0])){ $id = str_replace ( "ckGroupe" , "" , $id [0]); if ( is_numeric ( $id )){ SessionUtils::addOrRemoveValueFromArray( "selectedGroupes1" , $id ); echo JsUtils::get( "cDroit/verificationEtAffichageGroupe" , "{}" , "#operation2" ); $nb =sizeof( $_SESSION [ "selectedGroupes1" ]); echo Gui::pluriel( "groupe selectionne" , "groupes selectionnes" , $nb ); } } else { $id = str_replace ( "ckModule" , "" , $id [0]); if ( is_numeric ( $id )){ SessionUtils::addOrRemoveValueFromArray( "selectedModules1" , $id ); echo JsUtils::get( "cDroit/verificationEtAffichageGroupe" , "{}" , "#operation2" ); $nb =sizeof( $_SESSION [ "selectedModules1" ]); echo Gui::pluriel( "module selectionne" , "modules selectionnes" , $nb ); } } } |
5.5 cDroit/selectRelationGroupeModule
Fonctionnalité | Descriptif |
---|---|
Supprimer la relation module/groupe | Permet de supprimer la sélection de module(s) attribué(s) à un groupe |
$ckDroit-> le module est sélectionné | |
On charge les droits correspondants
On affiche l'interface
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public function selectRelationGroupeModule( $id ){ $ckDroit = str_replace ( "idModule" , "" , $id [0]); $ckDroit = substr ( $ckDroit , 0, 1); if ( is_numeric ( $ckDroit )){ $selectedDroits1 = $_SESSION [ 'selectedDroits1' ]; SessionUtils::addOrRemoveValueFromArray( "selectedDroits1" , $id ); $nb =sizeOf( $selectedDroits1 ); if (! empty ( $_SESSION [ "selectedDroits1" ])){ $retour = "<div class='cadre'>" ; $retour .= "<b>Pour la sélection :</b> " ; $retour .= "<a href='#' class='delete' id='btDeleteGroupeModule' name='btDeleteGroupeModule' title='Supprimer les relations sélectionnées'>Supprimer la ou les relations sélectionnée(s)</a> " ; $retour .= "</div>" ; echo $retour ; echo JsUtils::postAndBindTo( ".delete" , "click" , "cDroit/deleteConfGroupeModule" , "{}" , "#operation4" ); echo JsUtils::doSomeThingAndBindTo( ".delete" , "click" , "#operation4" , "show" ,200); } else { echo JsUtils::doSomethingOn( "#operation3" , "hide" ); } } } |
5.6 cDroit/verificationEtAffichageGroupe
Fonctionnalité | Descriptif |
---|---|
Affichage des modules affectés aux groupes | Permet d'afficher tous les modules affectés pour chaque groupe |
Si Groupe est sélectionné | |
On charge les id des groupes
On charge les id des modules affectés aux groupes
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public function verificationEtAffichageGroupe(){ $groupes = $_SESSION [ "selectedGroupes1" ]; if (! empty ( $groupes )){ $retour = "<div id='modulesGroupe'>" ; $retour .= "<fieldset class='cadre'>" ; $retour .= "<legend> Affichage des module(s) par groupe(s) : :</legend><br>" ; foreach ( $groupes as $groupe ){ $infosGroupe =DAO::getAll( "Groupe" , "id=" . $groupe ); $monGroupe =DAO::getOne( "Groupe" , "id=" . $groupe ); $modulesGroupe =DAO::getManyToMany( $monGroupe , "modules" ); foreach ( $infosGroupe AS $infos ){ if ( $modulesGroupe ){ $retour .= "<table border='1' id='moduleTable'" ; $retour .= "<tr><td colspan='2' bgcolor='#E6E6F7' align=center>" . $infos ->getLibelle(). "</td></tr>" ; foreach ( $modulesGroupe as $module ) { $retour .= "<tr><td class='element'><span title='Modifier...' class='update' id='update" . $module ->getId(). "'> " . $module ->toString(). "<span></td></tr>" ; } $retour .= " </table>" ; $retour .= "<br><br>" ; } } } $retour .= "</fieldset>" ; $retour .= "</div>" ; echo $retour ; } if ((! empty ( $groupes )) AND (! empty ( $_SESSION [ "selectedModules1" ]))){ echo JsUtils::doSomethingOn( "#multi" , "show" ); } else { echo JsUtils::doSomethingOn( "#multi" , "hide" ); } } |
5.7 cDroit/addGroupeModule
Fonctionnalité | Descriptif |
---|---|
Ajoute un module au groupe | Permet d'affecter un module au groupe |
On charge les groupes sélectionnés
On charge les modules sélectionnés
On ajoute un droit pour chaque groupe de chaque module sélectionné
On affiche le nombre de modules afféctés
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public function addModuleGroupe(){ if ( $_SERVER [ 'REQUEST_METHOD' ]== 'POST' ){ $groupes = $_SESSION [ "selectedGroupes2" ]; $modules = $_SESSION [ "selectedModules2" ]; foreach ( $modules as $module ){ foreach ( $groupes as $groupe ){ $droit = new Droit(); $droit ->setIdGroupe( $groupe ); $droit ->setIdModule( $module ); DAO::insert( $droit ); echo JsUtils::get( "cDroit/verificationEtAffichageModule" , "{}" , "#modulesGroupe" ); } } $nb =sizeof( $modules ); echo Gui::pluriel( "module ajoute" , "modules ajoutes" , $nb ); } } |
5.8 cDroit/deleteConfModuleGroupe
Fonctionnalité | Descriptif |
---|---|
Supprime une relation module/groupe | Permet de supprimer une relation module/groupe |
On charge l'id du module
On charge les modules sélectionnés
On affiche l'interface
On affiche le message de confirmation de suppression de la relation
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public function deleteConfModuleGroupe( $id ){ $idModule = str_replace ( "idGroupe" , "" , $id [0]); $idModule = substr ( $idModule , 0, 1); if ( is_numeric ( $idModule )){ echo "<div class='cadre'>Souhaitez vous supprimer cette relation ? <a id='confirmDelete" . $id [0]. "' href='#' class='accept'>Confirmer la suppression</a>" ; echo "<a id='cancelDelete' href='#' class='cancel'>Annuler</a>" ; echo JsUtils::getAndBindTo( "#confirmDelete" . $id [0], "click" , "cDroit/deleteModuleGroupe/" . $id [0], "{}" , "#message" ); } else { echo "<div class='cadre'>Souhaitez vous supprimer les relations sélectionnés ? <a id='confirmDelete" . $id . "' href='#' class='accept'>Confirmer la suppression</a>" ; echo "<a id='cancelDelete' href='#' class='cancel'>Annuler</a>" ; echo JsUtils::getAndBindTo( "#confirmDelete" . $id , "click" , "cDroit/deleteMultiModuleGroupe/" . $id , "{}" , "#message" ); } echo JsUtils::doSomethingOn( "#operation4" , "show" ,400); echo JsUtils::doSomeThingAndBindTo( "#cancelDelete" , "click" , "#operation4" , "hide" ,200,JsUtils::_setHtml( "#message" , "Suppression annule" )); } |
5.9 cDroit/deleteModuleGroupe
Fonctionnalité | Descriptif |
---|---|
Supprime une relation module/groupe | Permet de supprimer une relation module/groupe |
On charge l'id du module
On charge l'id du groupe
On supprime le droit
On affiche le message de confirmation de suppression du droit
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public function deleteModuleGroupe( $id ){ $id = str_replace ( "idGroupe" , "" , $id [0]); $ids = explode ( "idModule" , $id ); $idGroupe = $ids [0]; $idModule = $ids [1]; $droit = new Droit(); $droit ->setIdModule( $idModule ); $droit ->setIdGroupe( $idGroupe ); if (DAO:: delete ( $droit )){ SessionUtils::removeValueFromArray( "selectedDroits2" , $id ); Gui::showOne( $droit ); echo " supprime" ; echo JsUtils::get( "cDroit/verificationEtAffichageModule" , "{}" , "#modulesGroupe" ); } else { echo "Suppression impossible" ; } echo JsUtils::doSomethingOn( "#operation4" , "hide" ,200); } |
5.10 cDroit/deleteMultiModuleGroupe
Caractéristiques similaires a la méthode précédentes, mais avec plusieurs groupes/modules
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public function deleteMultiModuleGroupe(){ $relations = $_SESSION [ "selectedDroits2" ]; $nb =0; foreach ( $relations as $relation ){ $params = str_replace ( "idGroupe" , "" , $relation [0]); $params = explode ( "idModule" , $params ); $idGroupe = $params [0]; $idModule = $params [1]; $droit = new Droit(); $droit ->setIdGroupe( $idGroupe ); $droit ->setIdModule( $idModule ); if (DAO:: delete ( $droit )){ SessionUtils::removeValueFromArray( "selectedDroits2" , $relation ); $nb ++; } } echo JsUtils::get( "cDroit/verificationEtAffichageModule" , "{}" , "#modulesGroupe" ); echo Gui::pluriel( "relation supprime" , "relations supprimes" , $nb ); echo JsUtils::doSomethingOn( "#operation4" , "hide" ,200); echo JsUtils::doSomethingOn( "#operation3" , "hide" ,200); } |