Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
etudiants:2014:bertrand:bugreport [2013/12/08 23:50] – [BugReport : plateforme de remontée d'incidents] romain | etudiants:2014:bertrand:bugreport [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== BugReport : plateforme de remontée d'incidents ====== | ====== BugReport : plateforme de remontée d'incidents ====== |
| |
<WRAP center round box 60%> | <WRAP center round box 60%> |
**__Documentation technique - Sommaire :__** | **__Documentations techniques - Sommaire :__** |
- Gestion des utilisateurs | - Sources de l'application |
| - [[etudiants:2014:bertrand:bugreport1|Gestion des utilisateurs]] |
- [[etudiants:2014:bertrand:bugreport2|Gestion des applications]] | - [[etudiants:2014:bertrand:bugreport2|Gestion des applications]] |
- [[etudiants:2014:bertrand:bugreport3|Gestion des groupes]] | - [[etudiants:2014:bertrand:bugreport3|Gestion des groupes]] |
- [[etudiants:2014:bertrand:bugreport4|Soumettre un report]] | - [[etudiants:2014:bertrand:bugreport4|Soumettre un report]] |
- [[etudiants:2014:bertrand:bugreport5|Gestion des Droits]] | - [[etudiants:2014:bertrand:bugreport5|Gestion des Droits]] |
</WRAP> | - [[etudiants:2014:bertrand:bugreport6|Affectation d'utilisateurs]] |
| |
===== 1. Gestion des utilisateurs ===== | **__Documentations de supports- Sommaire :__** |
==== 1.1 Fonctionnalitées ==== | - [[etudiants:2014:bertrand:bugreportUtilisateur|Utilisateur]] |
{{:slam4:bugreport:bugreport-diag-uses-cases.png|}} | - [[etudiants:2014:bertrand:bugreportTechnicien|Technicien]] |
==== 1.2 Classes métiers ==== | - [[etudiants:2014:bertrand:bugreportAdministrateur|Administrateur]] |
{{:slam4:bugreport:bugreport-users.png|}} | |
==== 1.3 Variables de session ($_SESSION) ==== | |
|< 100% 30% 20% ->| | |
^Nom ^Type ^Descriptif ^ | |
|<html><span class="variable">$_SESSION["ckAll"]</span></html> |Booléen |Etat de la case à cocher permettant de sélectionner ou de désélectionner tous les utilisateurs | | |
|<html><span class="variable">$_SESSION["selectedUsers"]</span></html> |Tableau d'entiers |Ids des utilisateurs sélectionnés | | |
==== 1.4 Vues ==== | |
=== 1.4.1 vHeader === | |
Page en-tête | |
<sxh php;html-script: true;title:views/vHeader.php> | |
<?php | |
require_once 'technics/Gui.php'; | |
?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<script type="text/javascript" src="<?php echo $GLOBALS["siteUrl"]?>js/jquery-2.0.3.js"></script> | |
<script type="text/javascript" src="<?php echo $GLOBALS["siteUrl"]?>js/jquery.validate.js"></script> | |
<link rel="stylesheet" type="text/css" href="<?php echo $GLOBALS["siteUrl"]?>css/main.css"> | |
<title>Pi - Gestion des utilisateurs</title> | |
</head> | |
<body> | |
<div class="title">Pi <small>v0.9</small> - [ Plateforme d'Incident ]</div> | |
<div class="content"> | |
| |
<div id="hierarchie"><ul><?php echo $data["lien"];?></ul></div> | **__Documentations de tests - Sommaire :__** |
</sxh> | - [[etudiants:2014:bertrand:testsmanuels|Tests manuels]] |
=== 1.4.2 vUsers === | - [[etudiants:2014:bertrand:testsautomatises|Tests automatisés]] |
Liste des utilisateurs (Affichage initial et rafraîchissement) | </WRAP> |
| |
{{:etudiants:2014:bertrand:capture_-_vusers.jpg|}} | |
| |
<sxh php;html-script: true;title:views/vUsers.php> | ===== Sources de l'application ===== |
<div id="users"> | |
<fieldset class="cadre"> | |
<legend><input type="checkbox" id="ckAll" title="(Dé)sélectionner les utilisateurs"> Utilisateurs :</legend> | |
<table id="usersTable"> | |
<?php Gui::show($data["users"],"addDeleteUser")?> | |
</table> | |
<div class="buttons"> | |
<div class="btn" id="btAdd" name="btAdd" title="Ajouter un nouvel utilisateur"><span class="addUser">Ajouter un utilisateur...</span></div> | |
<div id="multi"><b>Pour la sélection :</b> | |
<a href="#" class="deleteUser" id="btMultiDelete" name="btMultiDelete" title="Supprimer les utilisateurs sélectionnés">Supprimer</a> | |
Affecter au groupe :<select id="multiGroupe"><?php echo Gui::show($data["groupes"],"select");?></select> | |
<a href="#" class="" id="btMultiToGroup" name="btMultiToGroup" title="Affecter les utilisateurs sélectionnés au groupe">Ok</a> | |
</div> | |
| |
</div> | |
</fieldset> | |
</div> | |
<?php echo $data["js"];?> | |
</sxh> | |
| |
=== 1.4.3 vFooter === | |< 70% >| |
| ^ Descriptif^Document^ |
Page pied-de-page | |Codes sources de l'application| {{:etudiants:2014:bertrand:bugreport.7z|}} | |
| |Script de la base de données| {{:etudiants:2014:bertrand:bdd_bugreport.sql|}} | |
<sxh php;html-script: true;title:views/vFooter.php> | |
<div id="operation" style="display: none;"></div> | |
<div id="message"><?php echo $data['message']; ?></div> | |
</div> | |
</body> | |
</html> | |
</sxh> | |
| |
=== 1.4.4 vAddUser === | |
Ajout d'un nouvel utilisateur ou modification d'un utilisateur existant | |
| |
{{:etudiants:2014:bertrand:capture_-_ajout-utilisateur.jpg|}} | |
| |
<sxh php;html-script: true;title:views/vAddUser.php> | |
<?php $user=$data["user"];?> | |
<form id="frmAddUser" name="frmAddUser" onsubmit="return false;"> | |
<fieldset> | |
<legend><?php echo $data["title"];?></legend> | |
<input type="hidden" id="id" name="id" value="<?php echo $user->getId();?>"> | |
<label class="label" for="login">Login <font color="red">*</font> :</label><input title="Login obligatoire" placeholder="Votre login" type="text" id="login" name="login" value="<?php echo $user->getLogin();?>" maxlength="30" required><br> | |
<label class="label" for="password">Password* :</label><input title="Password obligatoire" type="password" id="password" name="password" value="" maxlength="10"><br> | |
<label class="label" for="mail">Email :</label><input title="Entrer un mail valide" type="email" id="mail" name="mail" value="<?php echo $user->getMail();?>"><br> | |
<label class="label" for="groupe">Groupe :</label><select title="Sélectionner un groupe" size="1" id="idGroupe" name="idGroupe"><?php echo Gui::show($data["groupes"],"select");?>"></select><br> | |
<div class="buttons"> | |
<div id="btValidAddUser" class="btn">Valider</div> | |
<div id="btCancelAddUser" class="btn">Annuler</div> | |
</div> | |
</fieldset> | |
</form> | |
<?php echo $data["js"];?> | |
</sxh> | |
| |
==== 1.5 Contrôleurs ==== | |
=== 1.5.1 cUtilisateur/index === | |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Gestion des utilisateurs | **Contrôleur de gestion des utilisateurs**| | |
|::: | <html><span class="method">Appel du contrôleur <u>refresh</u></span></html> | | |
| |
<sxh php;title:cUtilisateur/index> | |
public function index(){ | |
$this->refresh(); | |
</sxh> | |
| |
=== 1.5.2 cUtilisateur/refresh === | |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Liste des utilisateurs | **Utilisé pour l'affichage initial et le rafraîchissement après une modification**| | |
|::: | <html><span class="param">Chargement des utilisateurs <u>$users</u></span></html> | | |
|::: | <html><span class="param">Application de la sélection d'utilisateurs</span></html> | | |
|::: | <html><div class="xml-cType">Mise en place logique client</div> | |
<div class="value">#btAdd -> add</div> | |
<div class="value">.delete -> confirmDelete</div> | |
<div class="value">.update -> update</div> | |
<div class="value">.ck -> select</div> | |
<div class="value">#ckAll -> selectAll</div> | |
<div class="value">#deleteMulti -> confirmDelete</div> | |
<div class="value">#btMultiToGroup -> addUsersToGroup</div> | |
</html> | | |
|::: | <html><span class="jsp">Passage de variables($data[]) et affichage de la vue <u>vUsers</u></span></html> | | |
| |
<sxh php;title:cUtilisateur/refresh> | |
public function refresh(){ | |
$users=DAO::getAll("Utilisateur"); | |
$selectedUsers=SessionUtils::getArray("selectedUsers"); | |
$js=JsUtils::getAndBindTo("#btAdd", "click", "cUtilisateur/add","{}","#operation"); | |
$js.=JsUtils::getAndBindTo(".deleteUser", "click", "cUtilisateur/confirmDelete","{}","#operation"); | |
$js.=JsUtils::getAndBindTo(".update", "click", "cUtilisateur/update","{}","#operation"); | |
$js.=JsUtils::getAndBindTo(".ck", "click", "cUtilisateur/select","{}","#message"); | |
$js.=JsUtils::setChecked("ck", $selectedUsers); | |
$js.=JsUtils::setChecked("ckAll", SessionUtils::getBoolean("ckAll")); | |
$js.=JsUtils::getAndBindTo("#deleteMulti", "click", "cUtilisateur/confirmDelete/multi","{}","#operation"); | |
$js.=JsUtils::postAndBindTo("#btMultiToGroup", "click", "cUtilisateur/addUsersToGroup",'{idGroupe: $("#multiGroupe").val()}',"#message"); | |
$js.=JsUtils::postAndBindTo("#ckAll", "click", "cUtilisateur/selectAll/",'{ids: $("input:checkbox[class=ck]").map(function(){return this.value;}).get().join(",")}',"#message"); | |
| |
| |
| |
$nb=sizeof($selectedUsers); | |
if($nb>0) | |
$js.=JsUtils::doSomethingOn("#multi", "show"); | |
else | |
$js.=JsUtils::doSomethingOn("#multi", "hide"); | |
| |
$data=array("users"=>$users,"js"=>$js,"groupes"=>DAO::getAll("Groupe")); | |
$this->loadView("vUsers",$data); | |
} | |
</sxh> | |
| |
=== 1.5.3 cUtilisateur/add === | |
__**Remarque :**__ | |
| |
Le contrôleur **add** gère l'appel de l'affichage du formulaire d'ajout (GET) et la soumission de ce même formulaire (POST). | |
| |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Ajout | **Ajout d'un utilisateur**| | |
|::: | <html><span class="">Si le formulaire est posté (POST)</span></html> | | |
|::: | <html><div class="value" style="margin-left:15px">Instanciation d'un nouvel utilisateur</div> | |
<div class="value" style="margin-left:15px">Affectation des variables du POST aux membres de l'utilisateur</div> | |
<div class="value" style="margin-left:15px">Encryptage sha1 du password</div> | |
<div class="value" style="margin-left:15px">Ajout dans la base de données</div> | |
<div class="method" style="margin-left:15px">Appel du contrôleur <u>refresh</u></div> | |
<span class="jsp" style="margin-left:15px">Affichage du message de mise à jour</div></html> | | |
|::: | <html><span class="">Sinon (GET)</span></html> | | |
|::: | <html> | |
<div class="xml-cType" style="margin-left:15px">Mise en place logique client</div> | |
<div class="value" style="margin-left:15px">#btValidAddUser -> add</div> | |
<div class="value" style="margin-left:15px">#btCancelAddUser -> annulation</div> | |
<div class="jsp" style="margin-left:15px">Passage des variables et chargement de la vue <u>vAddUser</u></div> | |
</html> | | |
| |
| |
| |
<sxh php;title:cUtilisateur/add> | |
public function add(){ | |
if($_SERVER['REQUEST_METHOD']=='POST'){ | |
$user=new Utilisateur(); | |
RequestUtils::setValuesToObject($user,RequestUtils::getPost()); | |
$password=$_POST["password"]; | |
if(isset($password) && $password!="") | |
$user->setPassword(sha1($password)); | |
$user->setGroupe(new Groupe($_POST["idGroupe"])); | |
if(DAO::insert($user)){ | |
Gui::showOne($user); | |
echo " ajouté"; | |
echo JsUtils::get("cUtilisateur/refresh","{}","#users"); | |
}else | |
echo "ajout impossible"; | |
echo JsUtils::doSomethingOn("#operation", "hide",200); | |
}else{ | |
$js=JsUtils::postFormAndBindTo("#btValidAddUser", "click", "cUtilisateur/add", "frmAddUser","#message",true); | |
$js.=JsUtils::doSomeThingAndBindTo("#btCancelAddUser", "click", "#operation","hide",200); | |
$js.=JsUtils::setHtmlAndBindTo("#btCancelAddUser", "click", "#message","Opération d\'ajout annulée"); | |
$js.=JsUtils::setAttr("#password", "required",true); | |
$js.=JsUtils::doSomethingOn("#operation", "show",400); | |
| |
$user=new Utilisateur(); | |
$groupes=DAO::getAll("Groupe"); | |
$this->loadView("vAddUser", array("user"=>$user,"js"=>$js,"title"=>"Ajouter un utilisateur :","groupes"=>$groupes)); | |
} | |
} | |
</sxh> | |
| |
=== 1.5.4 cUtilisateur/update === | |
| |
Scénario pratiquement identique au contrôleur **cUtilisateur/add** | |
| |
<sxh php;title:cUtilisateur/update> | |
public function update($id){ | |
if($_SERVER['REQUEST_METHOD']=='POST'){ | |
$user=new Utilisateur(); | |
RequestUtils::setValuesToObject($user,RequestUtils::getPost()); | |
$password=$_POST["password"]; | |
if(isset($password) && $password!="") | |
$user->setPassword(sha1($password)); | |
$user->setGroupe(new Groupe($_POST["idGroupe"])); | |
if(DAO::update($user)){ | |
Gui::showOne($user); | |
echo " modifié"; | |
echo JsUtils::get("cUtilisateur/refresh","{}","#users"); | |
}else | |
echo "modification impossible"; | |
echo JsUtils::doSomethingOn("#operation", "hide",200); | |
}else{ | |
$id=str_replace("update", "", $id[0]); | |
if(is_numeric($id)){ | |
$user=DAO::getOne("Utilisateur", "id=".$id); | |
$groupes=DAO::getAll("Groupe"); | |
$js=JsUtils::setVal("#idGroupe", $user->getGroupe()->getId()); | |
$js.=JsUtils::postFormAndBindTo("#btValidAddUser", "click", "cUtilisateur/update", "frmAddUser","#message",true); | |
$js.=JsUtils::doSomeThingAndBindTo("#btCancelAddUser", "click", "#operation","hide",200); | |
$js.=JsUtils::setHtmlAndBindTo("#btCancelAddUser", "click", "#message","Opération de mise à jour annulée"); | |
$js.=JsUtils::bindToElement("#password", "keypress", "function(){".JsUtils::_setAttr("#password", "required",true)."}"); | |
$js.=JsUtils::doSomethingOn("#operation", "show",400); | |
$this->loadView("vAddUser", array("user"=>$user,"js"=>$js,"title"=>"Modifier l'utilisateur :","groupes"=>$groupes)); | |
} | |
} | |
} | |
</sxh> | |
| |
=== 1.5.5 cUtilisateur/confirmDelete === | |
| |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Confirmation | **Confirmation pour suppression d'utilisateur(s)**| | |
|::: | <html><span class="">Test pour savoir si la sélection est unique ou multiple</span></html> | | |
|::: | <html><div class="jsp" style="margin-left:15px">Affichage du message de confirmation et des options possibles</div></html> | | |
|::: | <html><div class="xml-cType" style="margin-left:15px">Mise en place logique client</div> | |
<div class="value" style="margin-left:15px">#confirmDelete -> delete ou deleteMulti</div> | |
<div class="value" style="margin-left:15px">#cancelDelete -> annulation</div> | |
</html> | | |
<sxh php;title:cUtilisateur/confirmDelete> | |
public function confirmDelete($id){ | |
$id=str_replace("delete", "", $id[0]); | |
if(is_numeric($id)){ | |
echo "<div class='cadre'>Souhaitez vous supprimer l'utilisateur ? <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", "cUtilisateur/delete/".$id,"{}","#message"); | |
}else{ | |
echo "<div class='cadre'>Souhaitez vous supprimer les utilisateurs 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", "cUtilisateur/deleteMulti/".$id,"{}","#message"); | |
} | |
echo JsUtils::doSomethingOn("#operation", "show",400); | |
echo JsUtils::doSomeThingAndBindTo("#cancelDelete", "click", "#operation", "hide",200,JsUtils::_setHtml("#message","Supression annulée")); | |
} | |
</sxh> | |
| |
=== 1.5.6 cUtilisateur/delete === | |
| |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Suppression | **Supprimer 1 utilisateur**| | |
|::: | <html><span class="value">Récupération (GET) de l'$id de l'utilisateur à supprimer</span></html> | | |
|::: | <html><span class="param">Suppression dans la BDD</html> | | |
|::: | <html><span class="value">Mise à jour de la sélection (en session)</html> | | |
|::: | <html><span class="jsp">Affichage du message post-suppression</html> | | |
| |
<sxh php;title:cUtilisateur/delete> | |
public function delete($id){ | |
$id=str_replace("delete", "", $id[0]); | |
if(is_numeric($id)){ | |
$user=new Utilisateur(); | |
$user->setId($id); | |
if(DAO::delete($user)){ | |
SessionUtils::removeValueFromArray("selectedUsers", $id); | |
Gui::showOne($user); | |
echo " supprimé"; | |
echo JsUtils::get("cUtilisateur/refresh","{}","#users"); | |
}else { | |
echo "Suppression impossible"; | |
} | |
} | |
echo JsUtils::doSomethingOn("#operation", "hide",200); | |
} | |
</sxh> | |
| |
=== 1.5.7 cUtilisateur/deleteMulti === | |
| |
|< 100% 30% 70% >| | |
| Suppression | **Supprimer 1 sélection d'utilisateurs**| | |
|::: | <html><span class="value">Récupération (dans 1 tableau stocké en session) des ids de(s) utilisateur(s) à supprimer</span></html> | | |
|::: | <html><span class="param">Parcours des utilisateurs et suppression dans la BDD</html> | | |
|::: | <html><span class="value">Mise à jour de la sélection (en session)</html> | | |
|::: | <html><span class="jsp">Affichage du message post-suppression</html> | | |
| |
<sxh php;title:cUtilisateur/deleteMulti> | |
public function deleteMulti(){ | |
$selectedUsersId=SessionUtils::getArray("selectedUsers"); | |
$nb=0; | |
foreach ($selectedUsersId as $userId){ | |
$user=new Utilisateur(); | |
$user->setId($userId); | |
if(DAO::delete($user)){ | |
SessionUtils::removeValueFromArray("selectedUsers", $userId); | |
$nb++; | |
} | |
} | |
echo JsUtils::get("cUtilisateur/refresh","{}","#users"); | |
echo Gui::pluriel("utilisateur supprimé", "utilisateurs supprimés", $nb); | |
echo JsUtils::doSomethingOn("#operation", "hide",200); | |
} | |
</sxh> | |
| |
=== 1.5.8 cUtilisateur/select === | |
|< 100% 30% 70% >| | |
^Fonctionnalité ^Descriptif ^ | |
| Sélection | **(Dé)Sélectionner 1 utilisateur**| | |
|::: | <html><span class="value">Récupération (GET) de l'$id de l'utilisateur à (dé)sélectionner</span></html> | | |
|::: | <html><span class="value">Ajout ou suppression de l'id de l'utilisateur dans le tableau $_SESSION["selectedUsers"]</html> | | |
|::: | <html><span class="jsp">Affichage du message post-(dé)sélection</html> | | |
<sxh php;title:cUtilisateur/select> | |
public function select($id){ | |
$id=str_replace("ck", "", $id[0]); | |
if(is_numeric($id)){ | |
SessionUtils::addOrRemoveValueFromArray("selectedUsers", $id); | |
$nb=sizeof($_SESSION["selectedUsers"]); | |
if($nb>0) | |
echo JsUtils::doSomethingOn("#multi", "show"); | |
else | |
echo JsUtils::doSomethingOn("#multi", "hide"); | |
Gui::pluriel("utilisateur sélectionné", "utilisateurs sélectionnés", $nb); | |
} | |
} | |
</sxh> | |
| |
=== 1.5.9 cUtilisateur/selectAll === | |
| |
^Fonctionnalité ^Descriptif ^ | |
| Sélection | **(Dé)Sélectionner tous les utilisateurs**| | |
|::: | <html><span class="value">Récupération de l'opération à effectuer : sélection ou désélection</span></html> | | |
|::: | <html><span class="value">Mise à jour dans le tableau $_SESSION["selectedUsers"]</html> | | |
|::: | <html><span class="jsp">Affichage du message post-(dé)sélection</html> | | |
| |
<sxh php;title:cUtilisateur/selectAll> | |
public function selectAll(){ | |
$nb=0; | |
$ckAll=SessionUtils::checkBoolean("ckAll"); | |
if(!$ckAll){ | |
$_SESSION["selectedUsers"]=array(); | |
}else{ | |
$_SESSION["selectedUsers"]=explode(",", $_POST["ids"]); | |
$nb=sizeof($_SESSION["selectedUsers"]); | |
} | |
echo JsUtils::get("cUtilisateur/refresh/","{}","#users"); | |
echo Gui::pluriel("utilisateur sélectionné", "utilisateurs sélectionnés", $nb); | |
} | |
</sxh> | |
| |
=== 1.5.10 cUtilisateur/addUsersToGroup=== | |
| |
^Fonctionnalité ^Descriptif ^ | |
| Affecter à un groupe| **Affecter la sélection d'utilisateurs à un groupe**| | |
|::: | <html><span class="value">Récupération (POST) de l'$id du groupe sélectionné</span></html> | | |
|::: | <html><span class="value">Récupération (SESSION) des utilisateurs sélectionnés</span></html> | | |
|::: | <html><span class="value">Mise à jour de la sélection dans la base de données</html> | | |
|::: | <html><span class="jsp">Affichage du message post-affectation</html> | | |
| |
<sxh php;title:cUtilisateur/addUsersToGroup> | |
public function addUsersToGroup(){ | |
$idGroupe=$_POST["idGroupe"]; | |
$selectedUsersId=SessionUtils::getArray("selectedUsers"); | |
$nb=sizeof($selectedUsersId); | |
$where=SqlUtils::getMultiWhere($selectedUsersId, "id"); | |
$statement=DAO::$db->prepareStatement("update Utilisateur set idGroupe= :idGroupe where ".$where); | |
DAO::$db->bindValueFromStatement($statement,"idGroupe",$idGroupe); | |
$statement->execute(); | |
echo JsUtils::get("cUtilisateur/refresh/","{}","#users"); | |
echo Gui::pluriel("utilisateur a changé de groupe", "utilisateurs ont changé de groupe", $nb); | |
echo JsUtils::doSomethingOn("#operation", "hide",200); | |
} | |
</sxh> | |
| |
==== 1.6 Classes techniques ==== | |
| |
|<100%>| | |
^Nom ^Descriptif ^ | |
|<html><span class="class">DAO</span></html> | Classe passerelle entre Base de données et objets | | |
|<html><span class="class">Database</span></html> | Classe d'accès à une base de données, encapsule un objet PDO | | |
|<html><span class="class">GUI</span></html> | Gestion de l'affichage (évite les excès de code dans les vues)| | |
|<html><span class="class">JsUtils</span></html> | Génération de scripts côté client | | |
|<html><span class="class">OrmUtils</span></html> | Récupération des annotations de mappage relationnel/objet | | |
|<html><span class="class">RequestUtils</span></html> | Récupération des variables POST ou GET | | |
|<html><span class="class">SessionUtils</span></html> | Méthodes utilitaires liées à la session | | |
|<html><span class="class">SqlUtils</span></html> | Méthodes utilitaires liées à SQL | | |
| |
| |
<WRAP center round box 60%> | |
**__Documentation technique - Sommaire :__** | |
- Gestion des utilisateurs | |
- [[etudiants:2014:bertrand:bugreport2|Gestion des applications]] | |
- [[etudiants:2014:bertrand:bugreport3|Gestion des groupes]] | |
</WRAP> | |