99 lines
3.6 KiB
TeX
99 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}
|
|
|
|
|