Ceci est une ancienne révision du document !
En Construction...
BugReport : plateforme de remontée d'incidents
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 |
3- Classes métiers
4- Vues
4.1 vDroits
<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
<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
<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 |
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 |
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 |
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
|
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); } } }