9 nov. 2021 15:40:06 Thomas Dumont avatar

Fonctionnalité d'administration

Présentation

Les fonctionnalités d'administration correspondent à l'ensemble des fonctions disponibles dans le module administrateur quelque soit son niveau d'accès : administrateur technique, webmestre ou intervenant local.

A chaque fonctionnalité correspond un droit qui peut être attribué à un utilisateur. Ce droit est nivelé pour distinguer les différents profils d'utilisateurs.

Les valeurs des niveaux de droits sont les suivantes :

0 Administrateur technique
1 Producteur de contenu
2 Webmestre
3 Intervenant local

Lorsque l'utilisateur est autorisé, la fonctionnalité s'affiche dans son menu d'accueil sous la forme d'un titre et d'une description. En cliquant sur le lien, l'utilisateur accède à la JSP qui est le point d'entrée de la fonctionnalité.

Création

Pour installer une nouvelle fonctionnalité à Lutèce, celle-ci doit être packagée dans un plugin (voir Les plugins de Lutece).

Implémentation

Cette JSP porte généralement un nom de type Manage<MyFeature>.jsp. Le code de la JSP doit vérifier que l'utilisateur courant est authorisé, et si c'est le cas elle appellera la méthode du JspBean associé à la fonctionnalité (typiquement MyFeatureJspBean) restituant la page d'accueil de celle-ci.

<%@ include file=../PluginAdminHeader.jsp %>

<jsp:useBean id=myFeature scope=session class=fr.paris.lutece.plugins.myplugin.web.MyFeatureJspBean />
<jsp:useBean id=user scope=session class=fr.paris.lutece.portal.web.user.UserJspBean />

<%
if( user.check( MYFEATURE_MANAGEMENT ) )
{
%>
     <%= myFeature.getManageMyFeature(request) %>
<%
}
else
{
     response.sendRedirect(user.getPluginAccessDeniedUrl() );
}
%>
<%@ include file=../../AdminFooter.jsp %>

La JSP de la fonctionnalité reçoit en paramètre de la requête HTTP le nom du plugin auquel elle est associée (paramètre "plugin_name"). Ceci permet à deux plugins de partager les mêmes fonctionnalités dans des contextes différents.

Déclaration

La fonctionnalité doit être déclarée dans le fichier de configuration du plugin se fait par l'ajout des lignes suivantes :

<admin-features>
    <admin-feature>
        <feature-id>MYFEATURE_MANAGEMENT</feature-id>
        <feature-title>My Feature</feature-title>
        <feature-description>Description of my feature</feature-description>
        <feature-level>3</feature-level>
        <feature-url>plugins/myplugin/ManageMyFeature.jsp</feature-url>
    </admin-feature>
    ...
</admin-features>