1
22
23 package com.liferay.portlet.login.action;
24
25 import com.liferay.portal.kernel.language.LanguageUtil;
26 import com.liferay.portal.kernel.portlet.ConfigurationAction;
27 import com.liferay.portal.kernel.servlet.SessionErrors;
28 import com.liferay.portal.kernel.servlet.SessionMessages;
29 import com.liferay.portal.kernel.util.Constants;
30 import com.liferay.portal.kernel.util.ParamUtil;
31 import com.liferay.portal.kernel.util.Validator;
32 import com.liferay.portlet.PortletPreferencesFactoryUtil;
33
34 import javax.portlet.ActionRequest;
35 import javax.portlet.ActionResponse;
36 import javax.portlet.PortletConfig;
37 import javax.portlet.PortletPreferences;
38 import javax.portlet.RenderRequest;
39 import javax.portlet.RenderResponse;
40
41
48 public class ConfigurationActionImpl implements ConfigurationAction {
49
50 public void processAction(
51 PortletConfig portletConfig, ActionRequest actionRequest,
52 ActionResponse actionResponse)
53 throws Exception {
54
55 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
56
57 if (!cmd.equals(Constants.UPDATE)) {
58 return;
59 }
60
61 String portletResource = ParamUtil.getString(
62 actionRequest, "portletResource");
63
64 PortletPreferences preferences =
65 PortletPreferencesFactoryUtil.getPortletSetup(
66 actionRequest, portletResource);
67
68 String tabs1 = ParamUtil.getString(actionRequest, "tabs1");
69
70 if (tabs1.equals("general")) {
71 updateGeneral(actionRequest, preferences);
72 }
73 else if (tabs1.equals("email-notifications")) {
74 updateEmailNotifications(actionRequest, preferences);
75 }
76
77 SessionMessages.add(
78 actionRequest, portletConfig.getPortletName() + ".doConfigure");
79 }
80
81 public String render(
82 PortletConfig portletConfig, RenderRequest renderRequest,
83 RenderResponse renderResponse)
84 throws Exception {
85
86 return "/html/portlet/login/configuration.jsp";
87 }
88
89 protected void updateEmailNotifications(
90 ActionRequest actionRequest, PortletPreferences preferences)
91 throws Exception {
92
93 String tabs2 = ParamUtil.getString(actionRequest, "tabs2");
94
95 if (tabs2.equals("password-changed-notification")) {
96 String languageId = LanguageUtil.getLanguageId(actionRequest);
97
98 String emailPasswordSentEnabled = ParamUtil.getString(
99 actionRequest, "emailPasswordSentEnabled");
100 String emailPasswordSentSubject = ParamUtil.getString(
101 actionRequest, "emailPasswordSentSubject_" + languageId);
102 String emailPasswordSentBody = ParamUtil.getString(
103 actionRequest, "emailPasswordSentBody_" + languageId);
104
105 preferences.setValue(
106 "emailPasswordSentEnabled", emailPasswordSentEnabled);
107 preferences.setValue(
108 "emailPasswordSentSubject_" + languageId,
109 emailPasswordSentSubject);
110 preferences.setValue(
111 "emailPasswordSentBody_" + languageId, emailPasswordSentBody);
112
113 preferences.store();
114 }
115 else {
116 String emailFromName = ParamUtil.getString(
117 actionRequest, "emailFromName");
118 String emailFromAddress = ParamUtil.getString(
119 actionRequest, "emailFromAddress");
120
121 preferences.setValue("emailFromName", emailFromName);
122
123 if (Validator.isNotNull(emailFromAddress) &&
124 !Validator.isEmailAddress(emailFromAddress)) {
125
126 SessionErrors.add(actionRequest, "emailFromAddress");
127 }
128 else {
129 preferences.setValue("emailFromName", emailFromName);
130 preferences.setValue("emailFromAddress", emailFromAddress);
131
132 preferences.store();
133 }
134 }
135 }
136
137 protected void updateGeneral(
138 ActionRequest actionRequest, PortletPreferences preferences)
139 throws Exception {
140
141 String authType = ParamUtil.getString(actionRequest, "authType");
142
143 preferences.setValue("authType", authType);
144
145 preferences.store();
146 }
147
148 }