Ceci est une ancienne révision du document !
En Construction...
BugReport : plateforme de remontée d'incidents
Documentation technique - Sommaire :
- Gestion des Droits
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"] | entier | valeur de la checkbox ckAll |
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);
}
}
}
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
|
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
|
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
|
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);
}
}
Documentation technique - Sommaire :
- Gestion des Droits




