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);
}
}
}




