Mar 13, 2015 10:09:12 AM Jon Harper avatar   574    

Créer des nouvelles fonctionnalités d'administration


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.

Pour 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é.

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 appelera 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 %>

NB : 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éfinition d'une fonctionnalité d'administration dans le fichier de configuration d'un plugin

Pour installer une nouvelle fonctionnalité à Lutèce, celle-ci doit être packagée dans un plugin. [ HOWTO - Plugins].

La définition de la fonctionnalité dans le fichier de configuration du plugin se fait par l'ajout des lignes suivantes :

<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>