1   /**
2    * Copyright (c) 2000-2007 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.model.Layout;
29  import com.liferay.portal.model.LayoutReference;
30  import com.liferay.portal.model.impl.ThemeImpl;
31  import com.liferay.portal.service.LayoutLocalServiceUtil;
32  import com.liferay.portal.service.LayoutService;
33  import com.liferay.portal.service.PluginSettingLocalServiceUtil;
34  import com.liferay.portal.service.permission.GroupPermissionUtil;
35  import com.liferay.portal.service.permission.LayoutPermissionUtil;
36  
37  import java.io.File;
38  
39  import java.util.Map;
40  
41  /**
42   * <a href="LayoutServiceImpl.java.html"><b><i>View Source</i></b></a>
43   *
44   * @author Brian Wing Shun Chan
45   *
46   */
47  public class LayoutServiceImpl extends PrincipalBean implements LayoutService {
48  
49      public Layout addLayout(
50              long groupId, boolean privateLayout, long parentLayoutId,
51              String name, String title, String description, String type,
52              boolean hidden, String friendlyURL)
53          throws PortalException, SystemException {
54  
55          GroupPermissionUtil.check(
56              getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
57  
58          return LayoutLocalServiceUtil.addLayout(
59              getUserId(), groupId, privateLayout, parentLayoutId, name, title,
60              description, type, hidden, friendlyURL);
61      }
62  
63      public void deleteLayout(long plid)
64          throws PortalException, SystemException {
65  
66          LayoutPermissionUtil.check(
67              getPermissionChecker(), plid, ActionKeys.DELETE);
68  
69          LayoutLocalServiceUtil.deleteLayout(plid);
70      }
71  
72      public void deleteLayout(long groupId, boolean privateLayout, long layoutId)
73          throws PortalException, SystemException {
74  
75          LayoutPermissionUtil.check(
76              getPermissionChecker(), groupId, privateLayout, layoutId,
77              ActionKeys.DELETE);
78  
79          LayoutLocalServiceUtil.deleteLayout(groupId, privateLayout, layoutId);
80      }
81  
82      public String getLayoutName(
83              long groupId, boolean privateLayout, long layoutId,
84              String languageId)
85          throws PortalException, SystemException {
86  
87          Layout layout = LayoutLocalServiceUtil.getLayout(
88              groupId, privateLayout, layoutId);
89  
90          return layout.getName(languageId);
91      }
92  
93      public LayoutReference[] getLayoutReferences(
94              long companyId, String portletId, String prefsKey,
95              String prefsValue)
96          throws SystemException {
97  
98          return LayoutLocalServiceUtil.getLayouts(
99              companyId, portletId, prefsKey, prefsValue);
100     }
101 
102     public byte[] exportLayouts(
103             long groupId, boolean privateLayout, Map parameterMap)
104         throws PortalException, SystemException {
105 
106         GroupPermissionUtil.check(
107             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
108 
109         return LayoutLocalServiceUtil.exportLayouts(
110             groupId, privateLayout, parameterMap);
111     }
112 
113     public void importLayouts(
114             long groupId, boolean privateLayout, Map parameterMap, File file)
115         throws PortalException, SystemException {
116 
117         GroupPermissionUtil.check(
118             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
119 
120         LayoutLocalServiceUtil.importLayouts(
121             getUserId(), groupId, privateLayout, parameterMap, file);
122     }
123 
124     public void setLayouts(
125             long groupId, boolean privateLayout, long parentLayoutId,
126             long[] layoutIds)
127         throws PortalException, SystemException {
128 
129         GroupPermissionUtil.check(
130             getPermissionChecker(), groupId, ActionKeys.MANAGE_LAYOUTS);
131 
132         LayoutLocalServiceUtil.setLayouts(
133             groupId, privateLayout, parentLayoutId, layoutIds);
134     }
135 
136     public Layout updateLayout(
137             long groupId, boolean privateLayout, long layoutId,
138             long parentLayoutId, String name, String title, String languageId,
139             String description, String type, boolean hidden, String friendlyURL)
140         throws PortalException, SystemException {
141 
142         LayoutPermissionUtil.check(
143             getPermissionChecker(), groupId, privateLayout, layoutId,
144             ActionKeys.UPDATE);
145 
146         return LayoutLocalServiceUtil.updateLayout(
147             groupId, privateLayout, layoutId, parentLayoutId, name, title,
148             languageId, description, type, hidden, friendlyURL);
149     }
150 
151     public Layout updateLayout(
152             long groupId, boolean privateLayout, long layoutId,
153             long parentLayoutId, String name, String title, String languageId,
154             String description, String type, boolean hidden, String friendlyURL,
155             Boolean iconImage, byte[] iconBytes)
156         throws PortalException, SystemException {
157 
158         LayoutPermissionUtil.check(
159             getPermissionChecker(), groupId, privateLayout, layoutId,
160             ActionKeys.UPDATE);
161 
162         return LayoutLocalServiceUtil.updateLayout(
163             groupId, privateLayout, layoutId, parentLayoutId, name, title,
164             languageId, description, type, hidden, friendlyURL, iconImage,
165             iconBytes);
166     }
167 
168     public Layout updateLayout(
169             long groupId, boolean privateLayout, long layoutId,
170             String typeSettings)
171         throws PortalException, SystemException {
172 
173         LayoutPermissionUtil.check(
174             getPermissionChecker(), groupId, privateLayout, layoutId,
175             ActionKeys.UPDATE);
176 
177         return LayoutLocalServiceUtil.updateLayout(
178             groupId, privateLayout, layoutId, typeSettings);
179     }
180 
181     public Layout updateLookAndFeel(
182             long groupId, boolean privateLayout, long layoutId, String themeId,
183             String colorSchemeId, String css, boolean wapTheme)
184         throws PortalException, SystemException {
185 
186         LayoutPermissionUtil.check(
187             getPermissionChecker(), groupId, privateLayout, layoutId,
188             ActionKeys.UPDATE);
189 
190         PluginSettingLocalServiceUtil.checkPermission(
191             getUserId(), themeId, ThemeImpl.PLUGIN_TYPE);
192 
193         return LayoutLocalServiceUtil.updateLookAndFeel(
194             groupId, privateLayout, layoutId, themeId, colorSchemeId, css,
195             wapTheme);
196     }
197 
198     public Layout updateName(long plid, String name, String languageId)
199         throws PortalException, SystemException {
200 
201         LayoutPermissionUtil.check(
202             getPermissionChecker(), plid, ActionKeys.UPDATE);
203 
204         return LayoutLocalServiceUtil.updateName(plid, name, languageId);
205     }
206 
207     public Layout updateName(
208             long groupId, boolean privateLayout, long layoutId, String name,
209             String languageId)
210         throws PortalException, SystemException {
211 
212         LayoutPermissionUtil.check(
213             getPermissionChecker(), groupId, privateLayout, layoutId,
214             ActionKeys.UPDATE);
215 
216         return LayoutLocalServiceUtil.updateName(
217             groupId, privateLayout, layoutId, name, languageId);
218     }
219 
220     public Layout updateParentLayoutId(long plid, long parentPlid)
221         throws PortalException, SystemException {
222 
223         LayoutPermissionUtil.check(
224             getPermissionChecker(), plid, ActionKeys.UPDATE);
225 
226         return LayoutLocalServiceUtil.updateParentLayoutId(plid, parentPlid);
227     }
228 
229     public Layout updateParentLayoutId(
230             long groupId, boolean privateLayout, long layoutId,
231             long parentLayoutId)
232         throws PortalException, SystemException {
233 
234         LayoutPermissionUtil.check(
235             getPermissionChecker(), groupId, privateLayout, layoutId,
236             ActionKeys.UPDATE);
237 
238         return LayoutLocalServiceUtil.updateParentLayoutId(
239             groupId, privateLayout, layoutId, parentLayoutId);
240     }
241 
242     public Layout updatePriority(long plid, int priority)
243         throws PortalException, SystemException {
244 
245         LayoutPermissionUtil.check(
246             getPermissionChecker(), plid, ActionKeys.UPDATE);
247 
248         return LayoutLocalServiceUtil.updatePriority(plid, priority);
249     }
250 
251     public Layout updatePriority(
252             long groupId, boolean privateLayout, long layoutId, int priority)
253         throws PortalException, SystemException {
254 
255         LayoutPermissionUtil.check(
256             getPermissionChecker(), groupId, privateLayout, layoutId,
257             ActionKeys.UPDATE);
258 
259         return LayoutLocalServiceUtil.updatePriority(
260             groupId, privateLayout, layoutId, priority);
261     }
262 
263 }