XslExportResourceIdService.java

  1. /*
  2.  * Copyright (c) 2002-2022, City of Paris
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  *
  9.  *  1. Redistributions of source code must retain the above copyright notice
  10.  *     and the following disclaimer.
  11.  *
  12.  *  2. Redistributions in binary form must reproduce the above copyright notice
  13.  *     and the following disclaimer in the documentation and/or other materials
  14.  *     provided with the distribution.
  15.  *
  16.  *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
  17.  *     contributors may be used to endorse or promote products derived from
  18.  *     this software without specific prior written permission.
  19.  *
  20.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23.  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
  24.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30.  * POSSIBILITY OF SUCH DAMAGE.
  31.  *
  32.  * License 1.0
  33.  */
  34. package fr.paris.lutece.portal.service.xsl;

  35. import fr.paris.lutece.portal.business.xsl.XslExport;
  36. import fr.paris.lutece.portal.business.xsl.XslExportHome;
  37. import fr.paris.lutece.portal.service.rbac.Permission;
  38. import fr.paris.lutece.portal.service.rbac.ResourceIdService;
  39. import fr.paris.lutece.portal.service.rbac.ResourceType;
  40. import fr.paris.lutece.portal.service.rbac.ResourceTypeManager;
  41. import fr.paris.lutece.util.ReferenceList;

  42. import java.util.Locale;

  43. /**
  44.  * RBAC Resource Id Service to allow roles on AdminUser Services
  45.  */
  46. public class XslExportResourceIdService extends ResourceIdService
  47. {
  48.     public static final String PERMISSION_CREATE = "CREATE_XSL_EXPORT";
  49.     public static final String PERMISSION_DELETE = "DELETE_XSL_EXPORT";
  50.     public static final String PERMISSION_MODIFY = "MODIFY_XSL_EXPORT";
  51.     private static final String PROPERTY_LABEL_RESOURCE_TYPE = "portal.xsl.permission.label.resource_type_xsl_export";
  52.     private static final String PROPERTY_LABEL_CREATE = "portal.xsl.permission.label.create_xsl_export";
  53.     private static final String PROPERTY_LABEL_DELETE = "portal.xsl.permission.label.delete_xsl_export";
  54.     private static final String PROPERTY_LABEL_MODIFY = "portal.xsl.permission.label.modify_xsl_export";

  55.     /**
  56.      * Initializes the service
  57.      */
  58.     public void register( )
  59.     {
  60.         ResourceType rt = new ResourceType( );
  61.         rt.setResourceIdServiceClass( XslExportResourceIdService.class.getName( ) );
  62.         rt.setResourceTypeKey( XslExport.RESOURCE_TYPE );
  63.         rt.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE );

  64.         Permission p = new Permission( );
  65.         p.setPermissionKey( PERMISSION_CREATE );
  66.         p.setPermissionTitleKey( PROPERTY_LABEL_CREATE );
  67.         rt.registerPermission( p );

  68.         p = new Permission( );
  69.         p.setPermissionKey( PERMISSION_MODIFY );
  70.         p.setPermissionTitleKey( PROPERTY_LABEL_MODIFY );
  71.         rt.registerPermission( p );

  72.         p = new Permission( );
  73.         p.setPermissionKey( PERMISSION_DELETE );
  74.         p.setPermissionTitleKey( PROPERTY_LABEL_DELETE );
  75.         rt.registerPermission( p );

  76.         ResourceTypeManager.registerResourceType( rt );
  77.     }

  78.     /**
  79.      * Returns a list of resource ids
  80.      *
  81.      * @param locale
  82.      *            The current locale
  83.      * @return A list of resource ids
  84.      */
  85.     public ReferenceList getResourceIdList( Locale locale )
  86.     {
  87.         return null;
  88.     }

  89.     /**
  90.      * Returns the Title of a given resource
  91.      *
  92.      * @param strId
  93.      *            The Id of the resource
  94.      * @param locale
  95.      *            The current locale
  96.      * @return The Title of a given resource
  97.      */
  98.     public String getTitle( String strId, Locale locale )
  99.     {
  100.         int nIdExport;

  101.         try
  102.         {
  103.             nIdExport = Integer.parseInt( strId );
  104.         }
  105.         catch( Exception e )
  106.         {
  107.             return null;
  108.         }

  109.         XslExport export = XslExportHome.findByPrimaryKey( nIdExport );

  110.         return ( export != null ) ? export.getTitle( ) : null;
  111.     }
  112. }