1
22
23 package com.liferay.portlet.iframe.action;
24
25 import com.liferay.portal.kernel.portlet.BaseConfigurationAction;
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 extends BaseConfigurationAction {
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 userNameField = ParamUtil.getString(
76 actionRequest, "userNameField");
77 String password = ParamUtil.getString(actionRequest, "password");
78 String passwordField = ParamUtil.getString(
79 actionRequest, "passwordField");
80 String hiddenVariables = ParamUtil.getString(
81 actionRequest, "hiddenVariables");
82
83 String[] htmlAttributes = StringUtil.split(ParamUtil.getString(
84 actionRequest, "htmlAttributes"), "\n");
85
86 String portletResource = ParamUtil.getString(
87 actionRequest, "portletResource");
88
89 PortletPreferences preferences =
90 PortletPreferencesFactoryUtil.getPortletSetup(
91 actionRequest, portletResource);
92
93 preferences.setValue("src", src);
94 preferences.setValue("relative", String.valueOf(relative));
95
96 preferences.setValue("auth", String.valueOf(auth));
97 preferences.setValue("auth-type", authType);
98 preferences.setValue("form-method", formMethod);
99 preferences.setValue("user-name", userName);
100 preferences.setValue("user-name-field", userNameField);
101 preferences.setValue("password", password);
102 preferences.setValue("password-field", passwordField);
103 preferences.setValue("hidden-variables", hiddenVariables);
104
105 for (int i = 0; i < htmlAttributes.length; i++) {
106 int pos = htmlAttributes[i].indexOf("=");
107
108 if (pos != -1) {
109 String key = htmlAttributes[i].substring(0, pos);
110 String value = htmlAttributes[i].substring(
111 pos + 1, htmlAttributes[i].length());
112
113 preferences.setValue(key, value);
114 }
115 }
116
117 preferences.store();
118
119 SessionMessages.add(
120 actionRequest, portletConfig.getPortletName() + ".doConfigure");
121 }
122
123 public String render(
124 PortletConfig portletConfig, RenderRequest renderRequest,
125 RenderResponse renderResponse)
126 throws Exception {
127
128 return "/html/portlet/iframe/configuration.jsp";
129 }
130
131 }