1
22
23 package com.liferay.portlet.enterpriseadmin.action;
24
25 import com.liferay.portal.kernel.servlet.SessionErrors;
26 import com.liferay.portal.kernel.util.ParamUtil;
27 import com.liferay.portal.kernel.util.StringUtil;
28 import com.liferay.portal.model.Plugin;
29 import com.liferay.portal.security.auth.PrincipalException;
30 import com.liferay.portal.service.PluginSettingServiceUtil;
31 import com.liferay.portal.service.PortletServiceUtil;
32 import com.liferay.portal.struts.PortletAction;
33 import com.liferay.portal.util.PortalUtil;
34
35 import java.util.Arrays;
36
37 import javax.portlet.ActionRequest;
38 import javax.portlet.ActionResponse;
39 import javax.portlet.PortletConfig;
40 import javax.portlet.RenderRequest;
41 import javax.portlet.RenderResponse;
42
43 import org.apache.struts.action.ActionForm;
44 import org.apache.struts.action.ActionForward;
45 import org.apache.struts.action.ActionMapping;
46
47
53 public class EditPluginAction extends PortletAction {
54
55 public void processAction(
56 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
57 ActionRequest actionRequest, ActionResponse actionResponse)
58 throws Exception {
59
60 try {
61 updatePluginSetting(actionRequest);
62
63 sendRedirect(actionRequest, actionResponse);
64 }
65 catch (Exception e) {
66 if (e instanceof PrincipalException) {
67 SessionErrors.add(actionRequest, e.getClass().getName());
68
69 setForward(actionRequest, "portlet.enterprise_admin.error");
70 }
71 else {
72 throw e;
73 }
74 }
75 }
76
77 public ActionForward render(
78 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
79 RenderRequest renderRequest, RenderResponse renderResponse)
80 throws Exception {
81
82 return mapping.findForward(
83 getForward(renderRequest, "portlet.enterprise_admin.edit_plugin"));
84 }
85
86 protected void updatePluginSetting(ActionRequest actionRequest)
87 throws Exception {
88
89 long companyId = PortalUtil.getCompanyId(actionRequest);
90 String pluginId = ParamUtil.getString(actionRequest, "pluginId");
91 String pluginType = ParamUtil.getString(actionRequest, "pluginType");
92
93 String[] rolesArray = StringUtil.split(
94 ParamUtil.getString(actionRequest, "roles"), "\n");
95
96 Arrays.sort(rolesArray);
97
98 String roles = StringUtil.merge(rolesArray);
99
100 boolean active = ParamUtil.getBoolean(actionRequest, "active");
101
102 if (pluginType.equals(Plugin.TYPE_PORTLET)) {
103 String portletId = pluginId;
104
105 PortletServiceUtil.updatePortlet(
106 companyId, portletId, roles, active);
107 }
108 else {
109 PluginSettingServiceUtil.updatePluginSetting(
110 companyId, pluginId, pluginType, roles, active);
111 }
112 }
113
114 }