100 lines
3.6 KiB
TeX
100 lines
3.6 KiB
TeX
|
|
|||
|
\section{SecureMenu }
|
|||
|
|
|||
|
|
|||
|
\par Cette classe permet la cr<63>ation d'un menu dont les
|
|||
|
<EFBFBD>lements ({\em items}) ne seront affich<63>s qu'aux utilisateurs
|
|||
|
ayant les droits d'acc<63>s suffisants pour y acc<63>der.
|
|||
|
|
|||
|
\subsection{Cr<EFBFBD>ation d'un menu}
|
|||
|
|
|||
|
Pour cr<63>er un menu, il suffit de cr<63>er un objet en appelant \verb+SecureMenu($level=0)+, o<> \verb+$level+ est le niveau d'acc<63>s n<>cessaire pour les futurs <20>lements du menus si les droits d'acc<63>s ne leurs sont pas explicitement fix<69>s.
|
|||
|
Si \verb+$level+ n'est pas sp<73>cifi<66>, alors les <20>lements seront accessibles <20> tous par d<>faut.
|
|||
|
|
|||
|
\par Pour cr<63>er un menu il suffit donc de :
|
|||
|
\lstset{language=PHP}
|
|||
|
\begin{lstlisting}
|
|||
|
$exempleMenu1=new SecureMenu();
|
|||
|
$exempleMenu2=new SecureMenu();
|
|||
|
\end{lstlisting}
|
|||
|
|
|||
|
\subsection{Ajouter des <20>lements}
|
|||
|
\par Pour l'ajout d'un <20>lements, on fait appel <20> la fonction
|
|||
|
\verb+addItem($identifiant,$titre,$page)+, o<> \verb+$identifiant+
|
|||
|
est l'identifiant interne de l'<27>l<EFBFBD>ment du menu, \verb+$titre+ est
|
|||
|
le titre de l'<27>l<EFBFBD>ment, tel qu'il appara<72>tra aux utilisateurs du menu,
|
|||
|
\verb+$page+ est la page cible affich<63>e lors d'un clic sur l'<27>l<EFBFBD>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 <20> certaines personnes.
|
|||
|
\par Pour ce faire, il est n<>cessaire d'indiquer quels "les droits d'acc<63>s"
|
|||
|
autoris<EFBFBD>s aux zones restreintes, et indiquer a ces zones le droit d'acc<63>s de
|
|||
|
l'utilisateur actuel.
|
|||
|
|
|||
|
\subsubsection{Fixer les droits sur un <20>l<EFBFBD>ment}
|
|||
|
|
|||
|
\par Pour fixer un droit d'acc<63>s (qui r<>gira son affichage en fonction de l'utilisateur)
|
|||
|
<EFBFBD> un <20>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'<27>l<EFBFBD>ment du menu (comme vu dans \verb+addItem(...)+) et \verb+$level+ est le "droit
|
|||
|
d'acc<63>s minimum autoris<69>".
|
|||
|
|
|||
|
|
|||
|
\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<63>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<63>er un menu dont seul l'<27>l<EFBFBD>ment {\em "Sommaire"}
|
|||
|
sera affich<63>, car le droit d'acc<63>s de l'utilisateur indiqu<71> est
|
|||
|
insuffisant pour afficher l'entr<74>e {\em "Acces Membres"} du menu.
|
|||
|
|
|||
|
|
|||
|
\subsection{Utiliser le menu}
|
|||
|
|
|||
|
\par Une fois que les <20>l<EFBFBD>ments ont <20>t<EFBFBD> ajout<75>s et les droits d'acc<63>s fix<69>s, le menu
|
|||
|
est pr<70>t a <20>tre utilis<69> : il suffit d'appeller la m<>thode \verb+toHTML()+ qui g<>n<EFBFBD>re
|
|||
|
et renvoie le code HTML correspondant au menu <20> l'endroit o<> la fonction est appel<65>e.
|
|||
|
|
|||
|
\lstset{language=PHP}
|
|||
|
\begin{lstlisting}
|
|||
|
$menu=new SecureMenu();
|
|||
|
[...]
|
|||
|
print $menu->toHTML();
|
|||
|
\end{lstlisting}
|
|||
|
|
|||
|
|