001
014
015 package com.liferay.portlet.pluginsadmin.action;
016
017 import com.liferay.portal.kernel.servlet.SessionErrors;
018 import com.liferay.portal.kernel.util.ParamUtil;
019 import com.liferay.portal.kernel.util.StringPool;
020 import com.liferay.portal.kernel.util.StringUtil;
021 import com.liferay.portal.model.Plugin;
022 import com.liferay.portal.security.auth.PrincipalException;
023 import com.liferay.portal.service.PluginSettingServiceUtil;
024 import com.liferay.portal.service.PortletServiceUtil;
025 import com.liferay.portal.struts.PortletAction;
026 import com.liferay.portal.util.PortalUtil;
027
028 import java.util.Arrays;
029
030 import javax.portlet.ActionRequest;
031 import javax.portlet.ActionResponse;
032 import javax.portlet.PortletConfig;
033 import javax.portlet.RenderRequest;
034 import javax.portlet.RenderResponse;
035
036 import org.apache.struts.action.ActionForm;
037 import org.apache.struts.action.ActionForward;
038 import org.apache.struts.action.ActionMapping;
039
040
044 public class EditPluginAction extends PortletAction {
045
046 @Override
047 public void processAction(
048 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
049 ActionRequest actionRequest, ActionResponse actionResponse)
050 throws Exception {
051
052 try {
053 updatePluginSetting(actionRequest);
054
055 sendRedirect(actionRequest, actionResponse);
056 }
057 catch (Exception e) {
058 if (e instanceof PrincipalException) {
059 SessionErrors.add(actionRequest, e.getClass().getName());
060
061 setForward(actionRequest, "portlet.plugins_admin.error");
062 }
063 else {
064 throw e;
065 }
066 }
067 }
068
069 @Override
070 public ActionForward render(
071 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
072 RenderRequest renderRequest, RenderResponse renderResponse)
073 throws Exception {
074
075 return mapping.findForward(
076 getForward(renderRequest, "portlet.plugins_admin.edit_plugin"));
077 }
078
079 protected void updatePluginSetting(ActionRequest actionRequest)
080 throws Exception {
081
082 long companyId = PortalUtil.getCompanyId(actionRequest);
083 String pluginId = ParamUtil.getString(actionRequest, "pluginId");
084 String pluginType = ParamUtil.getString(actionRequest, "pluginType");
085
086 String[] rolesArray = StringUtil.split(
087 ParamUtil.getString(actionRequest, "roles"), '\n');
088
089 Arrays.sort(rolesArray);
090
091 String roles = StringUtil.merge(rolesArray);
092
093 boolean active = ParamUtil.getBoolean(actionRequest, "active");
094
095 if (pluginType.equals(Plugin.TYPE_PORTLET)) {
096 String portletId = pluginId;
097
098 PortletServiceUtil.updatePortlet(
099 companyId, portletId, StringPool.BLANK, active);
100 }
101 else {
102 PluginSettingServiceUtil.updatePluginSetting(
103 companyId, pluginId, pluginType, roles, active);
104 }
105 }
106
107 }