1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.service.impl;
24  
25  import com.liferay.portal.PortalException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.security.permission.ActionKeys;
28  import com.liferay.portal.kernel.util.LocaleUtil;
29  import com.liferay.portal.model.Layout;
30  import com.liferay.portal.model.LayoutReference;
31  import com.liferay.portal.model.impl.ThemeImpl;
32  import com.liferay.portal.service.base.LayoutServiceBaseImpl;
33  import com.liferay.portal.service.permission.GroupPermissionUtil;
34  import com.liferay.portal.service.permission.LayoutPermissionUtil;
35  
36  import java.io.File;
37  import java.io.InputStream;
38  
39  import java.util.HashMap;
40  import java.util.Locale;
41  import java.util.Map;
42  
43  /**
44   * <a href="LayoutServiceImpl.java.html"><b><i>View Source</i></b></a>
45   *
46   * @author Brian Wing Shun Chan
47   *
48   */
49  public class LayoutServiceImpl extends LayoutServiceBaseImpl {
50  
51      public Layout addLayout(
52              long groupId, boolean privateLayout, long parentLayoutId,
53              String name, String title, String description, String type,
54              boolean hidden, String friendlyURL)
55          throws PortalException, SystemException {
56  
57          Map localeNamesMap = new HashMap();
58  
59          Locale defaultLocale = LocaleUtil.getDefault();
60  
61          localeNamesMap.put(defaultLocale, name);
62  
63          return addLayout(
64              groupId, privateLayout, parentLayoutId, localeNamesMap,
65              new HashMap(), description, type, hidden, friendlyURL);
66      }
67  
68      public Layout addLayout(
69              long groupId, boolean privateLayout, long parentLayoutId,
70              Map localeNamesMap, Map localeTitlesMap, String description,
71              String type, boolean hidden, String friendlyURL)
72          throws PortalException, SystemException {
73  
74          GroupPermissionUtil.check(
75              getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
76  
77          return layoutLocalService.addLayout(
78              getUserId(), groupId, privateLayout, parentLayoutId, localeNamesMap,
79              localeTitlesMap, description, type, hidden, friendlyURL);
80      }
81  
82      public void deleteLayout(long plid)
83          throws PortalException, SystemException {
84  
85          LayoutPermissionUtil.check(
86              getPermissionChecker(), plid, ActionKeys.DELETE);
87  
88          layoutLocalService.deleteLayout(plid);
89      }
90  
91      public void deleteLayout(long groupId, boolean privateLayout, long layoutId)
92          throws PortalException, SystemException {
93  
94          LayoutPermissionUtil.check(
95              getPermissionChecker(), groupId, privateLayout, layoutId,
96              ActionKeys.DELETE);
97  
98          layoutLocalService.deleteLayout(groupId, privateLayout, layoutId);
99      }
100 
101     public String getLayoutName(
102             long groupId, boolean privateLayout, long layoutId,
103             String languageId)
104         throws PortalException, SystemException {
105 
106         Layout layout = layoutLocalService.getLayout(
107             groupId, privateLayout, layoutId);
108 
109         return layout.getName(languageId);
110     }
111 
112     public LayoutReference[] getLayoutReferences(
113             long companyId, String portletId, String prefsKey,
114             String prefsValue)
115         throws SystemException {
116 
117         return layoutLocalService.getLayouts(
118             companyId, portletId, prefsKey, prefsValue);
119     }
120 
121     public byte[] exportLayouts(
122             long groupId, boolean privateLayout, Map parameterMap)
123         throws PortalException, SystemException {
124 
125         GroupPermissionUtil.check(
126             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
127 
128         return layoutLocalService.exportLayouts(
129             groupId, privateLayout, parameterMap);
130     }
131 
132     public byte[] exportLayouts(
133             long groupId, boolean privateLayout, long[] layoutIds,
134             Map parameterMap)
135         throws PortalException, SystemException {
136 
137         GroupPermissionUtil.check(
138             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
139 
140         return layoutLocalService.exportLayouts(
141             groupId, privateLayout, layoutIds, parameterMap);
142     }
143 
144     public byte[] exportPortletInfo(
145             long plid, String portletId, Map parameterMap)
146         throws PortalException, SystemException {
147 
148         Layout layout = layoutLocalService.getLayout(plid);
149 
150         GroupPermissionUtil.check(
151             getPermissionChecker(), layout.getGroupId(),
152             ActionKeys.MANAGE_LAYOUTS);
153 
154         return layoutLocalService.exportPortletInfo(
155             plid, portletId, parameterMap);
156     }
157 
158     public void importLayouts(
159             long groupId, boolean privateLayout, Map parameterMap, File file)
160         throws PortalException, SystemException {
161 
162         GroupPermissionUtil.check(
163             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
164 
165         layoutLocalService.importLayouts(
166             getUserId(), groupId, privateLayout, parameterMap, file);
167     }
168 
169     public void importLayouts(
170             long groupId, boolean privateLayout, Map parameterMap,
171             InputStream is)
172         throws PortalException, SystemException {
173 
174         GroupPermissionUtil.check(
175             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
176 
177         layoutLocalService.importLayouts(
178             getUserId(), groupId, privateLayout, parameterMap, is);
179     }
180 
181     public void importPortletInfo(
182             long plid, String portletId, Map parameterMap, File file)
183         throws PortalException, SystemException {
184 
185         Layout layout = layoutLocalService.getLayout(plid);
186 
187         GroupPermissionUtil.check(
188             getPermissionChecker(), layout.getGroupId(),
189             ActionKeys.MANAGE_LAYOUTS);
190 
191         layoutLocalService.importPortletInfo(
192             getUserId(), plid, portletId, parameterMap, file);
193     }
194 
195     public void importPortletInfo(
196             long plid, String portletId, Map parameterMap, InputStream is)
197         throws PortalException, SystemException {
198 
199         Layout layout = layoutLocalService.getLayout(plid);
200 
201         GroupPermissionUtil.check(
202             getPermissionChecker(), layout.getGroupId(),
203             ActionKeys.MANAGE_LAYOUTS);
204 
205         layoutLocalService.importPortletInfo(
206             getUserId(), plid, portletId, parameterMap, is);
207     }
208 
209     public void setLayouts(
210             long groupId, boolean privateLayout, long parentLayoutId,
211             long[] layoutIds)
212         throws PortalException, SystemException {
213 
214         GroupPermissionUtil.check(
215             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
216 
217         layoutLocalService.setLayouts(
218             groupId, privateLayout, parentLayoutId, layoutIds);
219     }
220 
221     public Layout updateLayout(
222             long groupId, boolean privateLayout, long layoutId,
223             long parentLayoutId, Map localeNamesMap, Map localeTitlesMap,
224             String description, String type, boolean hidden, String friendlyURL)
225         throws PortalException, SystemException {
226 
227         LayoutPermissionUtil.check(
228             getPermissionChecker(), groupId, privateLayout, layoutId,
229             ActionKeys.UPDATE);
230 
231         return layoutLocalService.updateLayout(
232             groupId, privateLayout, layoutId, parentLayoutId, localeNamesMap,
233             localeTitlesMap, description, type, hidden, friendlyURL);
234     }
235 
236     public Layout updateLayout(
237             long groupId, boolean privateLayout, long layoutId,
238             long parentLayoutId, Map localeNamesMap, Map localeTitlesMap,
239             String description, String type, boolean hidden, String friendlyURL,
240             Boolean iconImage, byte[] iconBytes)
241         throws PortalException, SystemException {
242 
243         LayoutPermissionUtil.check(
244             getPermissionChecker(), groupId, privateLayout, layoutId,
245             ActionKeys.UPDATE);
246 
247         return layoutLocalService.updateLayout(
248             groupId, privateLayout, layoutId, parentLayoutId, localeNamesMap,
249             localeTitlesMap, description, type, hidden, friendlyURL, iconImage,
250             iconBytes);
251     }
252 
253     public Layout updateLayout(
254             long groupId, boolean privateLayout, long layoutId,
255             String typeSettings)
256         throws PortalException, SystemException {
257 
258         LayoutPermissionUtil.check(
259             getPermissionChecker(), groupId, privateLayout, layoutId,
260             ActionKeys.UPDATE);
261 
262         return layoutLocalService.updateLayout(
263             groupId, privateLayout, layoutId, typeSettings);
264     }
265 
266     public Layout updateLookAndFeel(
267             long groupId, boolean privateLayout, long layoutId, String themeId,
268             String colorSchemeId, String css, boolean wapTheme)
269         throws PortalException, SystemException {
270 
271         LayoutPermissionUtil.check(
272             getPermissionChecker(), groupId, privateLayout, layoutId,
273             ActionKeys.UPDATE);
274 
275         pluginSettingLocalService.checkPermission(
276             getUserId(), themeId, ThemeImpl.PLUGIN_TYPE);
277 
278         return layoutLocalService.updateLookAndFeel(
279             groupId, privateLayout, layoutId, themeId, colorSchemeId, css,
280             wapTheme);
281     }
282 
283     public Layout updateName(long plid, String name, String languageId)
284         throws PortalException, SystemException {
285 
286         LayoutPermissionUtil.check(
287             getPermissionChecker(), plid, ActionKeys.UPDATE);
288 
289         return layoutLocalService.updateName(plid, name, languageId);
290     }
291 
292     public Layout updateName(
293             long groupId, boolean privateLayout, long layoutId, String name,
294             String languageId)
295         throws PortalException, SystemException {
296 
297         LayoutPermissionUtil.check(
298             getPermissionChecker(), groupId, privateLayout, layoutId,
299             ActionKeys.UPDATE);
300 
301         return layoutLocalService.updateName(
302             groupId, privateLayout, layoutId, name, languageId);
303     }
304 
305     public Layout updateParentLayoutId(long plid, long parentPlid)
306         throws PortalException, SystemException {
307 
308         LayoutPermissionUtil.check(
309             getPermissionChecker(), plid, ActionKeys.UPDATE);
310 
311         return layoutLocalService.updateParentLayoutId(plid, parentPlid);
312     }
313 
314     public Layout updateParentLayoutId(
315             long groupId, boolean privateLayout, long layoutId,
316             long parentLayoutId)
317         throws PortalException, SystemException {
318 
319         LayoutPermissionUtil.check(
320             getPermissionChecker(), groupId, privateLayout, layoutId,
321             ActionKeys.UPDATE);
322 
323         return layoutLocalService.updateParentLayoutId(
324             groupId, privateLayout, layoutId, parentLayoutId);
325     }
326 
327     public Layout updatePriority(long plid, int priority)
328         throws PortalException, SystemException {
329 
330         LayoutPermissionUtil.check(
331             getPermissionChecker(), plid, ActionKeys.UPDATE);
332 
333         return layoutLocalService.updatePriority(plid, priority);
334     }
335 
336     public Layout updatePriority(
337             long groupId, boolean privateLayout, long layoutId, int priority)
338         throws PortalException, SystemException {
339 
340         LayoutPermissionUtil.check(
341             getPermissionChecker(), groupId, privateLayout, layoutId,
342             ActionKeys.UPDATE);
343 
344         return layoutLocalService.updatePriority(
345             groupId, privateLayout, layoutId, priority);
346     }
347 
348 }