Package pl.net.bluesoft.rnd.processtool.plugins

Source Code of pl.net.bluesoft.rnd.processtool.plugins.HelpContextChangerServlet

package pl.net.bluesoft.rnd.processtool.plugins;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.aperteworkflow.util.liferay.LiferayBridge;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;

import pl.net.bluesoft.rnd.processtool.plugins.util.DictionaryHelpChanger;
import pl.net.bluesoft.rnd.processtool.plugins.util.UserProcessQueuesSizeProvider;
import pl.net.bluesoft.rnd.processtool.plugins.util.UserProcessQueuesSizeProvider.UsersQueuesSize;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.PortalDelegateServlet;
import com.liferay.portal.model.Role;
import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.util.PortalUtil;
import com.thoughtworks.xstream.XStream;

/**
* Servlet with dictionary update logic. It requires active liferay session
* and CHANGE_HELP_TOOLTIPS role to proceed
*
* @author mpawlak@bluesoft.net.pl
*
*/
public class HelpContextChangerServlet extends AbstractLiferayServlet
{
  private static Set<String> authorizedRoles = new HashSet<String>();
 
  static
  {
    authorizedRoles.add("CHANGE_HELP_TOOLTIPS");
  }

  private static Logger logger = Logger.getLogger(HelpContextChangerServlet.class.getName());
 
  private static final ObjectMapper mapper = new ObjectMapper();
  private static final XStream xstream = new XStream();
  private static final Format DEFAULT_FORMAT = Format.JSON;

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  {
    if(isAuthorizationRequired())
    {
      boolean isUserAuthorized = authorizeUserByRequest(req, resp);
     
      if(!isUserAuthorized)
        return;
    }
   
    processRequest(req, resp);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  {
    if(isAuthorizationRequired())
    {
      boolean isUserAuthorized = authorizeUserByRequest(req, resp);
     
      if(!isUserAuthorized)
        return;
    }
   
    processRequest(req, resp);
  }
 
  private void processRequest(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException
  {
    resp.setContentType("application/json");
    PrintWriter out = resp.getWriter();

    try
    {
      String processDefinitionName = getRequestParamter(req, "processDefinitionName");
      String dictionaryId = getRequestParamter(req, "dictionaryId");
      String languageCode = getRequestParamter(req, "languageCode");
      String dictionaryItemKey = getRequestParamter(req,"dictionaryItemKey");
      String dictionaryItemValue = getRequestParamter(req,"dictionaryItemValue");
     
      DictionaryHelpChanger.DictionaryChangeRequest dictionaryChangeRequest = new DictionaryHelpChanger.DictionaryChangeRequest()
        .setProcessDeifinitionName(processDefinitionName)
        .setDictionaryId(dictionaryId)
        .setLanguageCode(languageCode)
        .setDictionaryItemKey(dictionaryItemKey)
        .setDictionaryItemValue(dictionaryItemValue);
     
      /* All parameters specified, proceed with dictionary item change */
      ProcessToolRegistry registry = (ProcessToolRegistry) getServletContext().getAttribute(ProcessToolRegistry.class.getName());
     
      DictionaryHelpChanger helpChanger = new DictionaryHelpChanger(registry);
      helpChanger.changeDictionaryHelp(dictionaryChangeRequest);
    }
    catch(Exception ex)
    {
      out.write("Problem during processing request");
      out.write(ex.getMessage());
     
      logger.log(Level.WARNING, "Problem during processing request", ex);
    }
   
    out.close();
  }

  @Override
  public void init() throws ServletException {
    super.init();
    logger.info(this.getClass().getSimpleName() + " INITIALIZED: "
        + getServletContext().getContextPath());
  }

  @Override
  public void destroy() {
    super.destroy();
    logger.info(this.getClass().getSimpleName() + " DESTROYED");
  }

  @Override
  public Set<String> getAuthorizedRoles()
  {
    return authorizedRoles;
  }

  @Override
  public String getSessionAuthorizationName()
  {
    return HelpContextChangerServlet.class.getName()+"_Authorization";
  }

  @Override
  public boolean isAuthorizationRequired()
  {
    return true;
  }
}
TOP

Related Classes of pl.net.bluesoft.rnd.processtool.plugins.HelpContextChangerServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.