l3.cas-d-astre/doc/libsecuremenu.tex
2009-05-01 08:39:36 +00:00

100 lines
3.6 KiB
TeX

\section{SecureMenu }
\par Cette classe permet la création d'un menu dont les
élements ({\em items}) ne seront affichés qu'aux utilisateurs
ayant les droits d'accès suffisants pour y accéder.
\subsection{Création d'un menu}
Pour créer un menu, il suffit de créer un objet en appelant \verb+SecureMenu($level=0)+, où \verb+$level+ est le niveau d'accès nécessaire pour les futurs élements du menus si les droits d'accès ne leurs sont pas explicitement fixés.
Si \verb+$level+ n'est pas spécifié, alors les élements seront accessibles à tous par défaut.
\par Pour créer un menu il suffit donc de :
\lstset{language=PHP}
\begin{lstlisting}
$exempleMenu1=new SecureMenu();
$exempleMenu2=new SecureMenu();
\end{lstlisting}
\subsection{Ajouter des élements}
\par Pour l'ajout d'un élements, on fait appel à la fonction
\verb+addItem($identifiant,$titre,$page)+, où \verb+$identifiant+
est l'identifiant interne de l'élément du menu, \verb+$titre+ est
le titre de l'élément, tel qu'il apparaîtra aux utilisateurs du menu,
\verb+$page+ est la page cible affichée lors d'un clic sur l'élément
du menu.
\par Par exemple:
\lstset{language=PHP}
\begin{lstlisting}
$exempleMenu1->addItem("id_interne_sommaire",
"Sommaire",
"index.php");
$exempleMenu1->addItem("id_interne2",
"Definitions"
"lexique.php");
\end{lstlisting}
aura pour effet d'ajouter {\em "Sommaire"}\/ et {\em "Definitions"}\/ au menu, qui pointent
respectivement sur les pages "\verb+index.php+" et "\verb+lexique.php+"
\subsection{Gestion des droits}
\par Par définition, une application utilisable par des utilisateurs n'ayant
pas le droit aux mêmes actions, doit explicitement {\em restreindre} certaines
zones à certaines personnes.
\par Pour ce faire, il est nécessaire d'indiquer quels "les droits d'accès"
autorisés aux zones restreintes, et indiquer a ces zones le droit d'accès de
l'utilisateur actuel.
\subsubsection{Fixer les droits sur un élément}
\par Pour fixer un droit d'accès (qui régira son affichage en fonction de l'utilisateur)
à un élement du menu, il suffit d'utiliser la méthode \verb+setItemLevel($identifiant,$level)+. Dans le prototype de cette fonction, \verb+$identifiant+ indique l'identifiant de
l'élément du menu (comme vu dans \verb+addItem(...)+) et \verb+$level+ est le "droit
d'accès minimum autorisé".
\subsubsection{Indiquer au menu les droits actuels}
\par Afin que le menu soit utilisable, il est nécessaire d'indiquer au menu les
droits de l'utilisateur courant par la méthode \verb+setCurrentLevel($level)+, où
\verb+$level+ est le "droit d'accès" de l'utilisateur courrant.
Par exemple :
\lstset{language=PHP}
\begin{lstlisting}
$menu=new SecureMenu(0);
$menu->addItem("sommaire ",
"Sommaire",
"index.php");
$menu->setItemLevel("sommaire",
0);
$menu->addItem("page_invisible",
"Acces Membres"
"membres.php");
$menu->setItemLevel("page_invisible",
1);
$menu->setCurrentLevel(0);
\end{lstlisting}
aura pour effet de créer un menu dont seul l'élément {\em "Sommaire"}
sera affiché, car le droit d'accès de l'utilisateur indiqué est
insuffisant pour afficher l'entrée {\em "Acces Membres"} du menu.
\subsection{Utiliser le menu}
\par Une fois que les éléments ont été ajoutés et les droits d'accès fixés, le menu
est prêt a être utilisé : il suffit d'appeller la méthode \verb+toHTML()+ qui génère
et renvoie le code HTML correspondant au menu à l'endroit où la fonction est appelée.
\lstset{language=PHP}
\begin{lstlisting}
$menu=new SecureMenu();
[...]
print $menu->toHTML();
\end{lstlisting}