1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.communities.action;
16  
17  import com.liferay.portal.kernel.util.ParamUtil;
18  import com.liferay.portal.model.Group;
19  import com.liferay.portal.model.Layout;
20  import com.liferay.portal.model.LayoutTypePortlet;
21  import com.liferay.portal.model.MembershipRequest;
22  import com.liferay.portal.model.PortletPreferencesIds;
23  import com.liferay.portal.model.Team;
24  import com.liferay.portal.service.GroupLocalServiceUtil;
25  import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
26  import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
27  import com.liferay.portal.service.TeamLocalServiceUtil;
28  import com.liferay.portal.util.PortalUtil;
29  import com.liferay.portal.util.PortletKeys;
30  import com.liferay.portal.util.WebKeys;
31  import com.liferay.portlet.PortletPreferencesFactoryUtil;
32  
33  import java.util.List;
34  
35  import javax.portlet.ActionRequest;
36  import javax.portlet.PortletPreferences;
37  import javax.portlet.RenderRequest;
38  
39  import javax.servlet.http.HttpServletRequest;
40  
41  /**
42   * <a href="ActionUtil.java.html"><b><i>View Source</i></b></a>
43   *
44   * @author Brian Wing Shun Chan
45   */
46  public class ActionUtil
47      extends com.liferay.portlet.enterpriseadmin.action.ActionUtil {
48  
49      public static void copyPreferences(
50              ActionRequest actionRequest, Layout targetLayout,
51              Layout sourceLayout)
52          throws Exception {
53  
54          HttpServletRequest request = PortalUtil.getHttpServletRequest(
55              actionRequest);
56  
57          copyPreferences(request, targetLayout, sourceLayout);
58      }
59  
60      public static void copyPreferences(
61              HttpServletRequest request, Layout targetLayout,
62              Layout sourceLayout)
63          throws Exception {
64  
65          long companyId = targetLayout.getCompanyId();
66  
67          LayoutTypePortlet sourceLayoutTypePortlet =
68              (LayoutTypePortlet)sourceLayout.getLayoutType();
69  
70          List<String> sourcePortletIds = sourceLayoutTypePortlet.getPortletIds();
71  
72          for (String sourcePortletId : sourcePortletIds) {
73  
74              // Copy preference
75  
76              PortletPreferencesIds portletPreferencesIds =
77                  PortletPreferencesFactoryUtil.getPortletPreferencesIds(
78                      request, targetLayout, sourcePortletId);
79  
80              PortletPreferencesLocalServiceUtil.getPreferences(
81                  portletPreferencesIds);
82  
83              PortletPreferencesIds sourcePortletPreferencesIds =
84                  PortletPreferencesFactoryUtil.getPortletPreferencesIds(
85                      request, sourceLayout, sourcePortletId);
86  
87              PortletPreferences sourcePreferences =
88                  PortletPreferencesLocalServiceUtil.getPreferences(
89                      sourcePortletPreferencesIds);
90  
91              PortletPreferencesLocalServiceUtil.updatePreferences(
92                  portletPreferencesIds.getOwnerId(),
93                  portletPreferencesIds.getOwnerType(),
94                  portletPreferencesIds.getPlid(),
95                  portletPreferencesIds.getPortletId(), sourcePreferences);
96  
97              // Copy portlet setup
98  
99              PortletPreferencesLocalServiceUtil.getPreferences(
100                 companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
101                 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
102                 sourcePortletId);
103 
104             sourcePreferences =
105                 PortletPreferencesLocalServiceUtil.getPreferences(
106                     companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
107                     PortletKeys.PREFS_OWNER_TYPE_LAYOUT, sourceLayout.getPlid(),
108                     sourcePortletId);
109 
110             PortletPreferencesLocalServiceUtil.updatePreferences(
111                 PortletKeys.PREFS_OWNER_ID_DEFAULT,
112                 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
113                 sourcePortletId, sourcePreferences);
114         }
115     }
116 
117     public static void getGroup(ActionRequest actionRequest) throws Exception {
118         HttpServletRequest request = PortalUtil.getHttpServletRequest(
119             actionRequest);
120 
121         getGroup(request);
122     }
123 
124     public static void getGroup(HttpServletRequest request) throws Exception {
125         long groupId = ParamUtil.getLong(request, "groupId");
126 
127         Group group = null;
128 
129         if (groupId > 0) {
130             group = GroupLocalServiceUtil.getGroup(groupId);
131         }
132 
133         request.setAttribute(WebKeys.GROUP, group);
134     }
135 
136     public static void getGroup(RenderRequest renderRequest) throws Exception {
137         HttpServletRequest request = PortalUtil.getHttpServletRequest(
138             renderRequest);
139 
140         getGroup(request);
141     }
142 
143     public static void getMembershipRequest(ActionRequest actionRequest)
144         throws Exception {
145 
146         HttpServletRequest request = PortalUtil.getHttpServletRequest(
147             actionRequest);
148 
149         getMembershipRequest(request);
150     }
151 
152     public static void getMembershipRequest(HttpServletRequest request)
153         throws Exception {
154 
155         long membershipRequestId =
156             ParamUtil.getLong(request, "membershipRequestId");
157 
158         MembershipRequest membershipRequest = null;
159 
160         if (membershipRequestId > 0) {
161             membershipRequest =
162                 MembershipRequestLocalServiceUtil.getMembershipRequest(
163                     membershipRequestId);
164         }
165 
166         request.setAttribute(WebKeys.MEMBERSHIP_REQUEST, membershipRequest);
167     }
168 
169     public static void getMembershipRequest(RenderRequest renderRequest)
170         throws Exception {
171 
172         HttpServletRequest request = PortalUtil.getHttpServletRequest(
173             renderRequest);
174 
175         getMembershipRequest(request);
176     }
177 
178     public static void getTeam(ActionRequest actionRequest)
179         throws Exception {
180 
181         HttpServletRequest request = PortalUtil.getHttpServletRequest(
182             actionRequest);
183 
184         getTeam(request);
185     }
186 
187     public static void getTeam(HttpServletRequest request)
188         throws Exception {
189 
190         long teamId = ParamUtil.getLong(request, "teamId");
191 
192         Team team = null;
193 
194         if (teamId > 0) {
195             team = TeamLocalServiceUtil.getTeam(teamId);
196         }
197 
198         request.setAttribute(WebKeys.TEAM, team);
199     }
200 
201     public static void getTeam(RenderRequest renderRequest)
202         throws Exception {
203 
204         HttpServletRequest request = PortalUtil.getHttpServletRequest(
205             renderRequest);
206 
207         getTeam(request);
208     }
209 
210 }