1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
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.service.GroupLocalServiceUtil;
24  import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
25  import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
26  import com.liferay.portal.util.PortalUtil;
27  import com.liferay.portal.util.PortletKeys;
28  import com.liferay.portal.util.WebKeys;
29  import com.liferay.portlet.PortletPreferencesFactoryUtil;
30  
31  import java.util.List;
32  
33  import javax.portlet.ActionRequest;
34  import javax.portlet.PortletPreferences;
35  import javax.portlet.RenderRequest;
36  
37  import javax.servlet.http.HttpServletRequest;
38  
39  /**
40   * <a href="ActionUtil.java.html"><b><i>View Source</i></b></a>
41   *
42   * @author Brian Wing Shun Chan
43   */
44  public class ActionUtil
45      extends com.liferay.portlet.enterpriseadmin.action.ActionUtil {
46  
47      public static void copyPreferences(
48              ActionRequest actionRequest, Layout targetLayout,
49              Layout sourceLayout)
50          throws Exception {
51  
52          HttpServletRequest request = PortalUtil.getHttpServletRequest(
53              actionRequest);
54  
55          copyPreferences(request, targetLayout, sourceLayout);
56      }
57  
58      public static void copyPreferences(
59              HttpServletRequest request, Layout targetLayout,
60              Layout sourceLayout)
61          throws Exception {
62  
63          long companyId = targetLayout.getCompanyId();
64  
65          LayoutTypePortlet sourceLayoutTypePortlet =
66              (LayoutTypePortlet)sourceLayout.getLayoutType();
67  
68          List<String> sourcePortletIds = sourceLayoutTypePortlet.getPortletIds();
69  
70          for (String sourcePortletId : sourcePortletIds) {
71  
72              // Copy preference
73  
74              PortletPreferencesIds portletPreferencesIds =
75                  PortletPreferencesFactoryUtil.getPortletPreferencesIds(
76                      request, targetLayout, sourcePortletId);
77  
78              PortletPreferencesLocalServiceUtil.getPreferences(
79                  portletPreferencesIds);
80  
81              PortletPreferencesIds sourcePortletPreferencesIds =
82                  PortletPreferencesFactoryUtil.getPortletPreferencesIds(
83                      request, sourceLayout, sourcePortletId);
84  
85              PortletPreferences sourcePreferences =
86                  PortletPreferencesLocalServiceUtil.getPreferences(
87                      sourcePortletPreferencesIds);
88  
89              PortletPreferencesLocalServiceUtil.updatePreferences(
90                  portletPreferencesIds.getOwnerId(),
91                  portletPreferencesIds.getOwnerType(),
92                  portletPreferencesIds.getPlid(),
93                  portletPreferencesIds.getPortletId(), sourcePreferences);
94  
95              // Copy portlet setup
96  
97              PortletPreferencesLocalServiceUtil.getPreferences(
98                  companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
99                  PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
100                 sourcePortletId);
101 
102             sourcePreferences =
103                 PortletPreferencesLocalServiceUtil.getPreferences(
104                     companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
105                     PortletKeys.PREFS_OWNER_TYPE_LAYOUT, sourceLayout.getPlid(),
106                     sourcePortletId);
107 
108             PortletPreferencesLocalServiceUtil.updatePreferences(
109                 PortletKeys.PREFS_OWNER_ID_DEFAULT,
110                 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
111                 sourcePortletId, sourcePreferences);
112         }
113     }
114 
115     public static void getGroup(ActionRequest actionRequest) throws Exception {
116         HttpServletRequest request = PortalUtil.getHttpServletRequest(
117             actionRequest);
118 
119         getGroup(request);
120     }
121 
122     public static void getGroup(HttpServletRequest request) throws Exception {
123         long groupId = ParamUtil.getLong(request, "groupId");
124 
125         Group group = null;
126 
127         if (groupId > 0) {
128             group = GroupLocalServiceUtil.getGroup(groupId);
129         }
130 
131         request.setAttribute(WebKeys.GROUP, group);
132     }
133 
134     public static void getGroup(RenderRequest renderRequest) throws Exception {
135         HttpServletRequest request = PortalUtil.getHttpServletRequest(
136             renderRequest);
137 
138         getGroup(request);
139     }
140 
141     public static void getMembershipRequest(ActionRequest actionRequest)
142         throws Exception {
143 
144         HttpServletRequest request = PortalUtil.getHttpServletRequest(
145             actionRequest);
146 
147         getMembershipRequest(request);
148     }
149 
150     public static void getMembershipRequest(HttpServletRequest request)
151         throws Exception {
152 
153         long membershipRequestId =
154             ParamUtil.getLong(request, "membershipRequestId");
155 
156         MembershipRequest membershipRequest = null;
157 
158         if (membershipRequestId > 0) {
159             membershipRequest =
160                 MembershipRequestLocalServiceUtil.getMembershipRequest(
161                     membershipRequestId);
162         }
163 
164         request.setAttribute(WebKeys.MEMBERSHIP_REQUEST, membershipRequest);
165     }
166 
167     public static void getMembershipRequest(RenderRequest renderRequest)
168         throws Exception {
169 
170         HttpServletRequest request = PortalUtil.getHttpServletRequest(
171             renderRequest);
172 
173         getMembershipRequest(request);
174     }
175 
176 }