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.ParamUtil;
019 import com.liferay.portal.model.Group;
020 import com.liferay.portal.model.Layout;
021 import com.liferay.portal.model.LayoutTypePortlet;
022 import com.liferay.portal.model.MembershipRequest;
023 import com.liferay.portal.model.PortletPreferencesIds;
024 import com.liferay.portal.model.Team;
025 import com.liferay.portal.service.GroupLocalServiceUtil;
026 import com.liferay.portal.service.LayoutServiceUtil;
027 import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
028 import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
029 import com.liferay.portal.service.TeamLocalServiceUtil;
030 import com.liferay.portal.theme.ThemeDisplay;
031 import com.liferay.portal.util.PortalUtil;
032 import com.liferay.portal.util.PortletKeys;
033 import com.liferay.portal.util.WebKeys;
034 import com.liferay.portlet.PortletPreferencesFactoryUtil;
035 import com.liferay.portlet.sites.util.SitesUtil;
036
037 import java.util.List;
038
039 import javax.portlet.PortletPreferences;
040 import javax.portlet.PortletRequest;
041
042 import javax.servlet.http.HttpServletRequest;
043
044
047 public class ActionUtil
048 extends com.liferay.portlet.rolesadmin.action.ActionUtil {
049
050 public static void copyPreferences(
051 HttpServletRequest request, Layout targetLayout,
052 Layout sourceLayout)
053 throws Exception {
054
055 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
056 WebKeys.THEME_DISPLAY);
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 themeDisplay.getCompanyId(),
093 PortletKeys.PREFS_OWNER_ID_DEFAULT,
094 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
095 sourcePortletId);
096
097 sourcePreferences =
098 PortletPreferencesLocalServiceUtil.getPreferences(
099 themeDisplay.getCompanyId(),
100 PortletKeys.PREFS_OWNER_ID_DEFAULT,
101 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, sourceLayout.getPlid(),
102 sourcePortletId);
103
104 PortletPreferencesLocalServiceUtil.updatePreferences(
105 PortletKeys.PREFS_OWNER_ID_DEFAULT,
106 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
107 sourcePortletId, sourcePreferences);
108
109 SitesUtil.updateLayoutScopes(
110 themeDisplay.getUserId(), sourceLayout, targetLayout,
111 sourcePreferences, targetPreferences, sourcePortletId,
112 themeDisplay.getLanguageId());
113 }
114 }
115
116 public static void copyPreferences(
117 PortletRequest portletRequest, Layout targetLayout,
118 Layout sourceLayout)
119 throws Exception {
120
121 HttpServletRequest request = PortalUtil.getHttpServletRequest(
122 portletRequest);
123
124 copyPreferences(request, targetLayout, sourceLayout);
125 }
126
127 public static Group getGroup(HttpServletRequest request) throws Exception {
128 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
129 WebKeys.THEME_DISPLAY);
130
131 String cmd = ParamUtil.getString(request, Constants.CMD);
132
133 long groupId = ParamUtil.getLong(request, "groupId");
134
135 Group group = null;
136
137 if (groupId > 0) {
138 group = GroupLocalServiceUtil.getGroup(groupId);
139 }
140 else if (!cmd.equals(Constants.ADD)) {
141 group = themeDisplay.getSiteGroup();
142 }
143
144 request.setAttribute(WebKeys.GROUP, group);
145
146 return group;
147 }
148
149 public static Group getGroup(PortletRequest portletRequest)
150 throws Exception {
151
152 HttpServletRequest request = PortalUtil.getHttpServletRequest(
153 portletRequest);
154
155 return getGroup(request);
156 }
157
158 public static void getMembershipRequest(HttpServletRequest request)
159 throws Exception {
160
161 long membershipRequestId = ParamUtil.getLong(
162 request, "membershipRequestId");
163
164 MembershipRequest membershipRequest = null;
165
166 if (membershipRequestId > 0) {
167 membershipRequest =
168 MembershipRequestLocalServiceUtil.getMembershipRequest(
169 membershipRequestId);
170 }
171
172 request.setAttribute(WebKeys.MEMBERSHIP_REQUEST, membershipRequest);
173 }
174
175 public static void getMembershipRequest(PortletRequest portletRequest)
176 throws Exception {
177
178 HttpServletRequest request = PortalUtil.getHttpServletRequest(
179 portletRequest);
180
181 getMembershipRequest(request);
182 }
183
184 public static void getTeam(HttpServletRequest request) throws Exception {
185 long teamId = ParamUtil.getLong(request, "teamId");
186
187 Team team = null;
188
189 if (teamId > 0) {
190 team = TeamLocalServiceUtil.getTeam(teamId);
191 }
192
193 request.setAttribute(WebKeys.TEAM, team);
194 }
195
196 public static void getTeam(PortletRequest portletRequest) throws Exception {
197 HttpServletRequest request = PortalUtil.getHttpServletRequest(
198 portletRequest);
199
200 getTeam(request);
201 }
202
203 public static void removePortletIds(
204 HttpServletRequest request, Layout layout)
205 throws Exception {
206
207 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
208 WebKeys.THEME_DISPLAY);
209
210 LayoutTypePortlet layoutTypePortlet =
211 (LayoutTypePortlet)layout.getLayoutType();
212
213 List<String> portletIds = layoutTypePortlet.getPortletIds();
214
215 for (String portletId : portletIds) {
216 layoutTypePortlet.removePortletId(
217 themeDisplay.getUserId(), portletId);
218 }
219
220 LayoutServiceUtil.updateLayout(
221 layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
222 layout.getTypeSettings());
223 }
224
225 public static void removePortletIds(
226 PortletRequest portletRequest, Layout layout)
227 throws Exception {
228
229 HttpServletRequest request = PortalUtil.getHttpServletRequest(
230 portletRequest);
231
232 removePortletIds(request, layout);
233 }
234
235 }