1
22
23 package com.liferay.portlet.iframe.action;
24
25 import com.liferay.portal.kernel.portlet.ConfigurationAction;
26 import com.liferay.portal.kernel.servlet.SessionMessages;
27 import com.liferay.portal.kernel.util.Constants;
28 import com.liferay.portal.kernel.util.HttpUtil;
29 import com.liferay.portal.kernel.util.ParamUtil;
30 import com.liferay.portal.kernel.util.StringUtil;
31 import com.liferay.portlet.PortletPreferencesFactoryUtil;
32
33 import javax.portlet.ActionRequest;
34 import javax.portlet.ActionResponse;
35 import javax.portlet.PortletConfig;
36 import javax.portlet.PortletPreferences;
37 import javax.portlet.RenderRequest;
38 import javax.portlet.RenderResponse;
39
40
46 public class ConfigurationActionImpl implements ConfigurationAction {
47
48 public void processAction(
49 PortletConfig portletConfig, ActionRequest actionRequest,
50 ActionResponse actionResponse)
51 throws Exception {
52
53 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
54
55 if (!cmd.equals(Constants.UPDATE)) {
56 return;
57 }
58
59 String src = ParamUtil.getString(actionRequest, "src");
60
61 if (!src.startsWith("/") &&
62 !StringUtil.startsWith(src, "http://") &&
63 !StringUtil.startsWith(src, "https://") &&
64 !StringUtil.startsWith(src, "mhtml://")) {
65
66 src = HttpUtil.getProtocol(actionRequest) + "://" + src;
67 }
68
69 boolean relative = ParamUtil.getBoolean(actionRequest, "relative");
70
71 boolean auth = ParamUtil.getBoolean(actionRequest, "auth");
72 String authType = ParamUtil.getString(actionRequest, "authType");
73 String formMethod = ParamUtil.getString(actionRequest, "formMethod");
74 String userName = ParamUtil.getString(actionRequest, "userName");
75 String password = ParamUtil.getString(actionRequest, "password");
76 String hiddenVariables = ParamUtil.getString(
77 actionRequest, "hiddenVariables");
78
79 String[] htmlAttributes = StringUtil.split(ParamUtil.getString(
80 actionRequest, "htmlAttributes"), "\n");
81
82 String portletResource = ParamUtil.getString(
83 actionRequest, "portletResource");
84
85 PortletPreferences prefs =
86 PortletPreferencesFactoryUtil.getPortletSetup(
87 actionRequest, portletResource);
88
89 prefs.setValue("src", src);
90 prefs.setValue("relative", String.valueOf(relative));
91
92 prefs.setValue("auth", String.valueOf(auth));
93 prefs.setValue("auth-type", authType);
94 prefs.setValue("form-method", formMethod);
95 prefs.setValue("user-name", userName);
96 prefs.setValue("password", password);
97 prefs.setValue("hidden-variables", hiddenVariables);
98
99 for (int i = 0; i < htmlAttributes.length; i++) {
100 int pos = htmlAttributes[i].indexOf("=");
101
102 if (pos != -1) {
103 String key = htmlAttributes[i].substring(0, pos);
104 String value = htmlAttributes[i].substring(
105 pos + 1, htmlAttributes[i].length());
106
107 prefs.setValue(key, value);
108 }
109 }
110
111 prefs.store();
112
113 SessionMessages.add(
114 actionRequest, portletConfig.getPortletName() + ".doConfigure");
115 }
116
117 public String render(
118 PortletConfig portletConfig, RenderRequest renderRequest,
119 RenderResponse renderResponse)
120 throws Exception {
121
122 return "/html/portlet/iframe/configuration.jsp";
123 }
124
125 }