WorkflowAppResourceIdService.java

package fr.paris.lutece.plugins.workflow.service;

import fr.paris.lutece.portal.business.rbac.RBAC;
import fr.paris.lutece.portal.service.i18n.I18nService;
import fr.paris.lutece.portal.service.rbac.Permission;
import fr.paris.lutece.portal.service.rbac.ResourceIdService;
import fr.paris.lutece.portal.service.rbac.ResourceType;
import fr.paris.lutece.portal.service.rbac.ResourceTypeManager;
import fr.paris.lutece.util.ReferenceList;

import java.util.Locale;

/**
 *
 * class WorkflowResourceIdService
 *
 */
public class WorkflowAppResourceIdService extends ResourceIdService
{
    public static final String RESOURCE_TYPE_KEY = "WORKFLOW_APP";
    public static final String PERM_WORKFLOW_LIST    = "PERM_WORKFLOW_LIST";
    public static final String PERM_WORKFLOW_CREATE    = "PERM_WORKFLOW_CREATE";
    public static final String PERM_WORKFLOW_IMPORT    = "PERM_WORKFLOW_IMPORT";

    private static final String PROPERTY_LABEL_RESOURCE_TYPE = "workflow.permission.label.resource_type_workflow_app";
    private static final String PROPERTY_LABEL_LIST     = "workflow.permission.label.list_workflow";
    private static final String PROPERTY_LABEL_CREATE     = "workflow.permission.label.create_workflow";
    private static final String PROPERTY_LABEL_IMPORT     = "workflow.permission.label.import_workflow";
    private static final String PROPERTY_LABEL_TITLE     = "workflow.permission.label.title_workflow_app";

    public WorkflowAppResourceIdService( )
    {
        setPluginName( WorkflowPlugin.PLUGIN_NAME );
    }

    @Override
    public void register( )
    {
        ResourceType rt = new ResourceType( );
        rt.setResourceIdServiceClass( getClass( ).getName( ) );
        rt.setPluginName( WorkflowPlugin.PLUGIN_NAME );
        rt.setResourceTypeKey( RESOURCE_TYPE_KEY );
        rt.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE );

        Permission p = new Permission( );
        p.setPermissionKey( PERM_WORKFLOW_CREATE );
        p.setPermissionTitleKey( PROPERTY_LABEL_CREATE );
        rt.registerPermission( p );

        p = new Permission( );
        p.setPermissionKey( PERM_WORKFLOW_LIST );
        p.setPermissionTitleKey( PROPERTY_LABEL_LIST );
        rt.registerPermission( p );

        p = new Permission( );
        p.setPermissionKey( PERM_WORKFLOW_IMPORT );
        p.setPermissionTitleKey( PROPERTY_LABEL_IMPORT );
        rt.registerPermission( p );

        ResourceTypeManager.registerResourceType( rt );
    }

    @Override
    public ReferenceList getResourceIdList( Locale locale )
    {
        ReferenceList rl = new ReferenceList( );
        rl.addItem( RBAC.WILDCARD_RESOURCES_ID, I18nService.getLocalizedString( PROPERTY_LABEL_TITLE, locale ) );
        return rl;
    }

    @Override
    public String getTitle( String strId, Locale locale )
    {
        return I18nService.getLocalizedString( PROPERTY_LABEL_TITLE, locale );
    }
}