001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.exportimport.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.util.MapUtil;
019    import com.liferay.portal.model.Layout;
020    import com.liferay.portal.security.permission.ActionKeys;
021    import com.liferay.portal.service.permission.GroupPermissionUtil;
022    import com.liferay.portal.service.permission.PortletPermissionUtil;
023    import com.liferay.portlet.exportimport.lar.MissingReferences;
024    import com.liferay.portlet.exportimport.model.ExportImportConfiguration;
025    import com.liferay.portlet.exportimport.service.base.ExportImportServiceBaseImpl;
026    
027    import java.io.File;
028    import java.io.InputStream;
029    import java.io.Serializable;
030    
031    import java.util.Map;
032    
033    /**
034     * @author Daniel Kocsis
035     */
036    public class ExportImportServiceImpl extends ExportImportServiceBaseImpl {
037    
038            @Override
039            public File exportLayoutsAsFile(
040                            ExportImportConfiguration exportImportConfiguration)
041                    throws PortalException {
042    
043                    Map<String, Serializable> settingsMap =
044                            exportImportConfiguration.getSettingsMap();
045    
046                    long sourceGroupId = MapUtil.getLong(settingsMap, "sourceGroupId");
047    
048                    GroupPermissionUtil.check(
049                            getPermissionChecker(), sourceGroupId,
050                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
051    
052                    return exportImportLocalService.exportLayoutsAsFile(
053                            exportImportConfiguration);
054            }
055    
056            @Override
057            public long exportLayoutsAsFileInBackground(
058                            ExportImportConfiguration exportImportConfiguration)
059                    throws PortalException {
060    
061                    GroupPermissionUtil.check(
062                            getPermissionChecker(), exportImportConfiguration.getGroupId(),
063                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
064    
065                    return exportImportLocalService.exportLayoutsAsFileInBackground(
066                            getUserId(), exportImportConfiguration);
067            }
068    
069            @Override
070            public long exportLayoutsAsFileInBackground(
071                            long exportImportConfigurationId)
072                    throws PortalException {
073    
074                    ExportImportConfiguration exportImportConfiguration =
075                            exportImportConfigurationLocalService.getExportImportConfiguration(
076                                    exportImportConfigurationId);
077    
078                    GroupPermissionUtil.check(
079                            getPermissionChecker(), exportImportConfiguration.getGroupId(),
080                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
081    
082                    return exportImportLocalService.exportLayoutsAsFileInBackground(
083                            getUserId(), exportImportConfigurationId);
084            }
085    
086            @Override
087            public File exportPortletInfoAsFile(
088                            ExportImportConfiguration exportImportConfiguration)
089                    throws PortalException {
090    
091                    Map<String, Serializable> settingsMap =
092                            exportImportConfiguration.getSettingsMap();
093    
094                    long sourcePlid = MapUtil.getLong(settingsMap, "sourcePlid");
095    
096                    Layout layout = layoutLocalService.getLayout(sourcePlid);
097    
098                    GroupPermissionUtil.check(
099                            getPermissionChecker(), layout.getGroupId(),
100                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
101    
102                    return exportImportLocalService.exportPortletInfoAsFile(
103                            exportImportConfiguration);
104            }
105    
106            @Override
107            public long exportPortletInfoAsFileInBackground(
108                            ExportImportConfiguration exportImportConfiguration)
109                    throws PortalException {
110    
111                    Map<String, Serializable> settingsMap =
112                            exportImportConfiguration.getSettingsMap();
113    
114                    long sourcePlid = MapUtil.getLong(settingsMap, "sourcePlid");
115    
116                    Layout layout = layoutLocalService.getLayout(sourcePlid);
117    
118                    GroupPermissionUtil.check(
119                            getPermissionChecker(), layout.getGroupId(),
120                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
121    
122                    return exportImportLocalService.exportPortletInfoAsFileInBackground(
123                            getUserId(), exportImportConfiguration);
124            }
125    
126            @Override
127            public void importLayouts(
128                            ExportImportConfiguration exportImportConfiguration, File file)
129                    throws PortalException {
130    
131                    Map<String, Serializable> settingsMap =
132                            exportImportConfiguration.getSettingsMap();
133    
134                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
135    
136                    GroupPermissionUtil.check(
137                            getPermissionChecker(), targetGroupId,
138                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
139    
140                    exportImportLocalService.importLayouts(exportImportConfiguration, file);
141            }
142    
143            @Override
144            public void importLayouts(
145                            ExportImportConfiguration exportImportConfiguration,
146                            InputStream inputStream)
147                    throws PortalException {
148    
149                    Map<String, Serializable> settingsMap =
150                            exportImportConfiguration.getSettingsMap();
151    
152                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
153    
154                    GroupPermissionUtil.check(
155                            getPermissionChecker(), targetGroupId,
156                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
157    
158                    exportImportLocalService.importLayouts(
159                            exportImportConfiguration, inputStream);
160            }
161    
162            @Override
163            public long importLayoutsInBackground(
164                            ExportImportConfiguration exportImportConfiguration, File file)
165                    throws PortalException {
166    
167                    Map<String, Serializable> settingsMap =
168                            exportImportConfiguration.getSettingsMap();
169    
170                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
171    
172                    GroupPermissionUtil.check(
173                            getPermissionChecker(), targetGroupId,
174                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
175    
176                    return exportImportLocalService.importLayoutsInBackground(
177                            getUserId(), exportImportConfiguration, file);
178            }
179    
180            @Override
181            public long importLayoutsInBackground(
182                            ExportImportConfiguration exportImportConfiguration,
183                            InputStream inputStream)
184                    throws PortalException {
185    
186                    Map<String, Serializable> settingsMap =
187                            exportImportConfiguration.getSettingsMap();
188    
189                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
190    
191                    GroupPermissionUtil.check(
192                            getPermissionChecker(), targetGroupId,
193                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
194    
195                    return exportImportLocalService.importLayoutsInBackground(
196                            getUserId(), exportImportConfiguration, inputStream);
197            }
198    
199            @Override
200            public void importPortletInfo(
201                            ExportImportConfiguration exportImportConfiguration, File file)
202                    throws PortalException {
203    
204                    Map<String, Serializable> settingsMap =
205                            exportImportConfiguration.getSettingsMap();
206    
207                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
208    
209                    GroupPermissionUtil.check(
210                            getPermissionChecker(), targetGroupId,
211                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
212    
213                    exportImportLocalService.importPortletInfo(
214                            exportImportConfiguration, file);
215            }
216    
217            @Override
218            public void importPortletInfo(
219                            ExportImportConfiguration exportImportConfiguration,
220                            InputStream inputStream)
221                    throws PortalException {
222    
223                    Map<String, Serializable> settingsMap =
224                            exportImportConfiguration.getSettingsMap();
225    
226                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
227    
228                    GroupPermissionUtil.check(
229                            getPermissionChecker(), targetGroupId,
230                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
231    
232                    exportImportLocalService.importPortletInfo(
233                            exportImportConfiguration, inputStream);
234            }
235    
236            @Override
237            public long importPortletInfoInBackground(
238                            ExportImportConfiguration exportImportConfiguration, File file)
239                    throws PortalException {
240    
241                    Map<String, Serializable> settingsMap =
242                            exportImportConfiguration.getSettingsMap();
243    
244                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
245    
246                    GroupPermissionUtil.check(
247                            getPermissionChecker(), targetGroupId,
248                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
249    
250                    return exportImportLocalService.importPortletInfoInBackground(
251                            getUserId(), exportImportConfiguration, file);
252            }
253    
254            @Override
255            public long importPortletInfoInBackground(
256                            ExportImportConfiguration exportImportConfiguration,
257                            InputStream inputStream)
258                    throws PortalException {
259    
260                    Map<String, Serializable> settingsMap =
261                            exportImportConfiguration.getSettingsMap();
262    
263                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
264    
265                    GroupPermissionUtil.check(
266                            getPermissionChecker(), targetGroupId,
267                            ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
268    
269                    return exportImportLocalService.importPortletInfoInBackground(
270                            getUserId(), exportImportConfiguration, inputStream);
271            }
272    
273            @Override
274            public MissingReferences validateImportLayoutsFile(
275                            ExportImportConfiguration exportImportConfiguration, File file)
276                    throws PortalException {
277    
278                    Map<String, Serializable> settingsMap =
279                            exportImportConfiguration.getSettingsMap();
280    
281                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
282    
283                    GroupPermissionUtil.check(
284                            getPermissionChecker(), targetGroupId,
285                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
286    
287                    return exportImportLocalService.validateImportLayoutsFile(
288                            exportImportConfiguration, file);
289            }
290    
291            @Override
292            public MissingReferences validateImportLayoutsFile(
293                            ExportImportConfiguration exportImportConfiguration,
294                            InputStream inputStream)
295                    throws PortalException {
296    
297                    Map<String, Serializable> settingsMap =
298                            exportImportConfiguration.getSettingsMap();
299    
300                    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
301    
302                    GroupPermissionUtil.check(
303                            getPermissionChecker(), targetGroupId,
304                            ActionKeys.EXPORT_IMPORT_LAYOUTS);
305    
306                    return exportImportLocalService.validateImportLayoutsFile(
307                            exportImportConfiguration, inputStream);
308            }
309    
310            @Override
311            public MissingReferences validateImportPortletInfo(
312                            ExportImportConfiguration exportImportConfiguration, File file)
313                    throws PortalException {
314    
315                    Map<String, Serializable> settingsMap =
316                            exportImportConfiguration.getSettingsMap();
317    
318                    long targetPlid = MapUtil.getLong(settingsMap, "targetPlid");
319                    String portletId = MapUtil.getString(settingsMap, "portletId");
320    
321                    PortletPermissionUtil.check(
322                            getPermissionChecker(), targetPlid, portletId,
323                            ActionKeys.CONFIGURATION);
324    
325                    return exportImportLocalService.validateImportPortletInfo(
326                            exportImportConfiguration, file);
327            }
328    
329            @Override
330            public MissingReferences validateImportPortletInfo(
331                            ExportImportConfiguration exportImportConfiguration,
332                            InputStream inputStream)
333                    throws PortalException {
334    
335                    Map<String, Serializable> settingsMap =
336                            exportImportConfiguration.getSettingsMap();
337    
338                    long targetPlid = MapUtil.getLong(settingsMap, "targetPlid");
339                    String portletId = MapUtil.getString(settingsMap, "portletId");
340    
341                    PortletPermissionUtil.check(
342                            getPermissionChecker(), targetPlid, portletId,
343                            ActionKeys.CONFIGURATION);
344    
345                    return exportImportLocalService.validateImportPortletInfo(
346                            exportImportConfiguration, inputStream);
347            }
348    
349    }