001
014
015 package com.liferay.portlet.sites.action;
016
017 import com.liferay.portal.kernel.util.Constants;
018 import com.liferay.portal.kernel.util.GetterUtil;
019 import com.liferay.portal.kernel.util.ParamUtil;
020 import com.liferay.portal.kernel.util.Validator;
021 import com.liferay.portal.model.Group;
022 import com.liferay.portal.model.Layout;
023 import com.liferay.portal.model.LayoutTypePortlet;
024 import com.liferay.portal.model.MembershipRequest;
025 import com.liferay.portal.model.PortletPreferencesIds;
026 import com.liferay.portal.model.Team;
027 import com.liferay.portal.service.GroupLocalServiceUtil;
028 import com.liferay.portal.service.LayoutLocalServiceUtil;
029 import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
030 import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
031 import com.liferay.portal.service.TeamLocalServiceUtil;
032 import com.liferay.portal.theme.ThemeDisplay;
033 import com.liferay.portal.util.PortalUtil;
034 import com.liferay.portal.util.PortletKeys;
035 import com.liferay.portal.util.WebKeys;
036 import com.liferay.portlet.PortletPreferencesFactoryUtil;
037
038 import java.util.List;
039
040 import javax.portlet.PortletPreferences;
041 import javax.portlet.PortletRequest;
042
043 import javax.servlet.http.HttpServletRequest;
044
045
048 public class ActionUtil
049 extends com.liferay.portlet.rolesadmin.action.ActionUtil {
050
051 public static void copyPreferences(
052 HttpServletRequest request, Layout targetLayout,
053 Layout sourceLayout)
054 throws Exception {
055
056 long companyId = targetLayout.getCompanyId();
057
058 LayoutTypePortlet sourceLayoutTypePortlet =
059 (LayoutTypePortlet)sourceLayout.getLayoutType();
060
061 List<String> sourcePortletIds = sourceLayoutTypePortlet.getPortletIds();
062
063 for (String sourcePortletId : sourcePortletIds) {
064
065
066
067 PortletPreferencesIds portletPreferencesIds =
068 PortletPreferencesFactoryUtil.getPortletPreferencesIds(
069 request, targetLayout, sourcePortletId);
070
071 PortletPreferencesLocalServiceUtil.getPreferences(
072 portletPreferencesIds);
073
074 PortletPreferencesIds sourcePortletPreferencesIds =
075 PortletPreferencesFactoryUtil.getPortletPreferencesIds(
076 request, sourceLayout, sourcePortletId);
077
078 PortletPreferences sourcePreferences =
079 PortletPreferencesLocalServiceUtil.getPreferences(
080 sourcePortletPreferencesIds);
081
082 PortletPreferencesLocalServiceUtil.updatePreferences(
083 portletPreferencesIds.getOwnerId(),
084 portletPreferencesIds.getOwnerType(),
085 portletPreferencesIds.getPlid(),
086 portletPreferencesIds.getPortletId(), sourcePreferences);
087
088
089
090 PortletPreferences targetPreferences =
091 PortletPreferencesLocalServiceUtil.getPreferences(
092 companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
093 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
094 sourcePortletId);
095
096 sourcePreferences =
097 PortletPreferencesLocalServiceUtil.getPreferences(
098 companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
099 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, sourceLayout.getPlid(),
100 sourcePortletId);
101
102 PortletPreferencesLocalServiceUtil.updatePreferences(
103 PortletKeys.PREFS_OWNER_ID_DEFAULT,
104 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
105 sourcePortletId, sourcePreferences);
106
107 String scopeType = GetterUtil.getString(
108 sourcePreferences.getValue("lfrScopeType", null));
109
110 if (Validator.isNotNull(scopeType) && scopeType.equals("layout")) {
111 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
112 WebKeys.THEME_DISPLAY);
113
114 Layout targetScopeLayout =
115 LayoutLocalServiceUtil.getLayoutByUuidAndGroupId(
116 targetLayout.getUuid(), targetLayout.getGroupId());
117
118 String languageId = themeDisplay.getLanguageId();
119
120 if (!targetScopeLayout.hasScopeGroup()) {
121 GroupLocalServiceUtil.addGroup(
122 themeDisplay.getUserId(), Layout.class.getName(),
123 targetLayout.getPlid(),
124 targetLayout.getName(languageId), null, 0, null, false,
125 true, null);
126 }
127
128 String portletTitle = PortalUtil.getPortletTitle(
129 sourcePortletId, languageId);
130
131 String newPortletTitle = PortalUtil.getNewPortletTitle(
132 portletTitle, String.valueOf(sourceLayout.getLayoutId()),
133 targetLayout.getName(languageId));
134
135 targetPreferences.setValue(
136 "groupId", String.valueOf(targetLayout.getGroupId()));
137 targetPreferences.setValue("lfrScopeType", "layout");
138 targetPreferences.setValue(
139 "lfrScopeLayoutUuid", targetLayout.getUuid());
140 targetPreferences.setValue(
141 "portletSetupTitle_" + languageId, newPortletTitle);
142 targetPreferences.setValue(
143 "portletSetupUseCustomTitle", Boolean.TRUE.toString());
144
145 targetPreferences.store();
146 }
147 }
148 }
149
150 public static void copyPreferences(
151 PortletRequest portletRequest, Layout targetLayout,
152 Layout sourceLayout)
153 throws Exception {
154
155 HttpServletRequest request = PortalUtil.getHttpServletRequest(
156 portletRequest);
157
158 copyPreferences(request, targetLayout, sourceLayout);
159 }
160
161 public static Group getGroup(HttpServletRequest request) throws Exception {
162 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
163 WebKeys.THEME_DISPLAY);
164
165 String cmd = ParamUtil.getString(request, Constants.CMD);
166
167 long groupId = ParamUtil.getLong(request, "groupId");
168
169 Group group = null;
170
171 if (groupId > 0) {
172 group = GroupLocalServiceUtil.getGroup(groupId);
173 }
174 else if (!cmd.equals(Constants.ADD)) {
175 group = themeDisplay.getScopeGroup();
176 }
177
178 request.setAttribute(WebKeys.GROUP, group);
179
180 return group;
181 }
182
183 public static Group getGroup(PortletRequest portletRequest)
184 throws Exception {
185
186 HttpServletRequest request = PortalUtil.getHttpServletRequest(
187 portletRequest);
188
189 return getGroup(request);
190 }
191
192 public static void getMembershipRequest(HttpServletRequest request)
193 throws Exception {
194
195 long membershipRequestId = ParamUtil.getLong(
196 request, "membershipRequestId");
197
198 MembershipRequest membershipRequest = null;
199
200 if (membershipRequestId > 0) {
201 membershipRequest =
202 MembershipRequestLocalServiceUtil.getMembershipRequest(
203 membershipRequestId);
204 }
205
206 request.setAttribute(WebKeys.MEMBERSHIP_REQUEST, membershipRequest);
207 }
208
209 public static void getMembershipRequest(PortletRequest portletRequest)
210 throws Exception {
211
212 HttpServletRequest request = PortalUtil.getHttpServletRequest(
213 portletRequest);
214
215 getMembershipRequest(request);
216 }
217
218 public static void getTeam(HttpServletRequest request)
219 throws Exception {
220
221 long teamId = ParamUtil.getLong(request, "teamId");
222
223 Team team = null;
224
225 if (teamId > 0) {
226 team = TeamLocalServiceUtil.getTeam(teamId);
227 }
228
229 request.setAttribute(WebKeys.TEAM, team);
230 }
231
232 public static void getTeam(PortletRequest portletRequest)
233 throws Exception {
234
235 HttpServletRequest request = PortalUtil.getHttpServletRequest(
236 portletRequest);
237
238 getTeam(request);
239 }
240
241 }