etudiants:2014:bertrand:bugreport5

BugReport : plateforme de remontée d'incidents

Documentations techniques - Sommaire :

  1. Gestion des Droits

Documentations de supports- Sommaire :

Documentations de tests - Sommaire :

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

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>&nbsp;Gestion des droits par les groupes :</legend>
    
    
    <table width="100%" >
  	 <td width="50%" style="background:#ffffff">
	    	<fieldset class="cadre">
	    	<legend>&nbsp;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>&nbsp;Modules :</legend>
	       		 <table id="modulesTable" >
	           		 <?php Gui::show($data["modules"],"droitModule")?>
	        	</table>
	       </fieldset> 
      </td>
	</table>
        

              
              <div id="multi"><b>Pour la sélection :</b>&nbsp;
             	<a href="#" class="add" id="btAddModuleGroupe" name="btAddModuleGroupe" title="Affecter les modules sélectionnées">Affecter</a>&nbsp;
                <a href="#" class="delete" id="btDeleteModuleGroupe" name="btDeleteModuleGroupe" title="Supprimer les relations sélectionnées">Supprimer</a>&nbsp;
            </div>
            
        </div>
    </fieldset> 
</div>


<?php echo $data["js"];?>

4.3 vDroitParModules

<div id="droitparGroupe">

    <fieldset class="cadre">
    <legend>&nbsp;Gestion des droits par les modules :</legend>
    
    
    <table width="100%" >
  	 <td width="50%" style="background:#ffffff">
	    	<fieldset class="cadre">
	    	<legend>&nbsp;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>&nbsp;Groupes :</legend>
	       		 <table id="modulesTable" >
	           		 <?php Gui::show($data["groupes"],"droitGroupe")?>
	        	</table>
	       </fieldset> 
      </td>
	</table>
        

              
              <div id="multi"><b>Pour la sélection :</b>&nbsp;
             	<a href="#" class="add" id="btAddGroupeModule" name="btAddGroupeModule" title="Affecter les modules sélectionnées">Affecter</a>&nbsp;
            </div>
            
            
        </div>
    </fieldset> 
</div>


<?php echo $data["js"];?>

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>&nbsp;";
				$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>&nbsp";
				$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>&nbsp;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()."'>&nbsp;".$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);
		}
	}

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

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

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

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

  • etudiants/2014/bertrand/bugreport5.txt
  • Dernière modification : il y a 5 ans
  • de 127.0.0.1