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.portal.service.impl;
016    
017    import com.liferay.portal.kernel.dao.orm.QueryUtil;
018    import com.liferay.portal.kernel.exception.PortalException;
019    import com.liferay.portal.kernel.util.OrderByComparator;
020    import com.liferay.portal.model.LayoutPrototype;
021    import com.liferay.portal.model.User;
022    import com.liferay.portal.security.permission.ActionKeys;
023    import com.liferay.portal.service.ServiceContext;
024    import com.liferay.portal.service.base.LayoutPrototypeServiceBaseImpl;
025    import com.liferay.portal.service.permission.LayoutPrototypePermissionUtil;
026    import com.liferay.portal.service.permission.PortalPermissionUtil;
027    
028    import java.util.ArrayList;
029    import java.util.List;
030    import java.util.Locale;
031    import java.util.Map;
032    
033    /**
034     * @author Brian Wing Shun Chan
035     * @author Jorge Ferrer
036     */
037    public class LayoutPrototypeServiceImpl extends LayoutPrototypeServiceBaseImpl {
038    
039            @Override
040            public LayoutPrototype addLayoutPrototype(
041                            Map<Locale, String> nameMap, Map<Locale, String> descriptionMap,
042                            boolean active, ServiceContext serviceContext)
043                    throws PortalException {
044    
045                    PortalPermissionUtil.check(
046                            getPermissionChecker(), ActionKeys.ADD_LAYOUT_PROTOTYPE);
047    
048                    User user = getUser();
049    
050                    return layoutPrototypeLocalService.addLayoutPrototype(
051                            user.getUserId(), user.getCompanyId(), nameMap, descriptionMap,
052                            active, serviceContext);
053            }
054    
055            /**
056             * @deprecated As of 6.2.0, replaced by {@link #addLayoutPrototype(Map,
057             *             String, boolean, ServiceContext)}
058             */
059            @Deprecated
060            @Override
061            public LayoutPrototype addLayoutPrototype(
062                            Map<Locale, String> nameMap, String description, boolean active)
063                    throws PortalException {
064    
065                    PortalPermissionUtil.check(
066                            getPermissionChecker(), ActionKeys.ADD_LAYOUT_PROTOTYPE);
067    
068                    User user = getUser();
069    
070                    return layoutPrototypeLocalService.addLayoutPrototype(
071                            user.getUserId(), user.getCompanyId(), nameMap, description,
072                            active);
073            }
074    
075            /**
076             * @deprecated As of 7.0.0, replaced by {@link #addLayoutPrototype(Map, Map,
077             *             boolean, ServiceContext)}
078             */
079            @Deprecated
080            @Override
081            public LayoutPrototype addLayoutPrototype(
082                            Map<Locale, String> nameMap, String description, boolean active,
083                            ServiceContext serviceContext)
084                    throws PortalException {
085    
086                    PortalPermissionUtil.check(
087                            getPermissionChecker(), ActionKeys.ADD_LAYOUT_PROTOTYPE);
088    
089                    User user = getUser();
090    
091                    return layoutPrototypeLocalService.addLayoutPrototype(
092                            user.getUserId(), user.getCompanyId(), nameMap, description, active,
093                            serviceContext);
094            }
095    
096            @Override
097            public void deleteLayoutPrototype(long layoutPrototypeId)
098                    throws PortalException {
099    
100                    LayoutPrototypePermissionUtil.check(
101                            getPermissionChecker(), layoutPrototypeId, ActionKeys.DELETE);
102    
103                    layoutPrototypeLocalService.deleteLayoutPrototype(layoutPrototypeId);
104            }
105    
106            @Override
107            public LayoutPrototype fetchLayoutPrototype(long layoutPrototypeId)
108                    throws PortalException {
109    
110                    LayoutPrototypePermissionUtil.check(
111                            getPermissionChecker(), layoutPrototypeId, ActionKeys.VIEW);
112    
113                    return layoutPrototypeLocalService.fetchLayoutPrototype(
114                            layoutPrototypeId);
115            }
116    
117            @Override
118            public LayoutPrototype getLayoutPrototype(long layoutPrototypeId)
119                    throws PortalException {
120    
121                    LayoutPrototypePermissionUtil.check(
122                            getPermissionChecker(), layoutPrototypeId, ActionKeys.VIEW);
123    
124                    return layoutPrototypeLocalService.getLayoutPrototype(
125                            layoutPrototypeId);
126            }
127    
128            @Override
129            public List<LayoutPrototype> search(
130                            long companyId, Boolean active,
131                            OrderByComparator<LayoutPrototype> obc)
132                    throws PortalException {
133    
134                    List<LayoutPrototype> filteredLayoutPrototypes = new ArrayList<>();
135    
136                    List<LayoutPrototype> layoutPrototypes =
137                            layoutPrototypeLocalService.search(
138                                    companyId, active, QueryUtil.ALL_POS, QueryUtil.ALL_POS, obc);
139    
140                    for (LayoutPrototype layoutPrototype : layoutPrototypes) {
141                            if (LayoutPrototypePermissionUtil.contains(
142                                            getPermissionChecker(),
143                                            layoutPrototype.getLayoutPrototypeId(), ActionKeys.VIEW)) {
144    
145                                    filteredLayoutPrototypes.add(layoutPrototype);
146                            }
147                    }
148    
149                    return filteredLayoutPrototypes;
150            }
151    
152            @Override
153            public LayoutPrototype updateLayoutPrototype(
154                            long layoutPrototypeId, Map<Locale, String> nameMap,
155                            Map<Locale, String> descriptionMap, boolean active,
156                            ServiceContext serviceContext)
157                    throws PortalException {
158    
159                    LayoutPrototypePermissionUtil.check(
160                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
161    
162                    return layoutPrototypeLocalService.updateLayoutPrototype(
163                            layoutPrototypeId, nameMap, descriptionMap, active, serviceContext);
164            }
165    
166            /**
167             * @deprecated As of 6.2.0, replaced by {@link #updateLayoutPrototype(long,
168             *             Map, String, boolean, ServiceContext)}
169             */
170            @Deprecated
171            @Override
172            public LayoutPrototype updateLayoutPrototype(
173                            long layoutPrototypeId, Map<Locale, String> nameMap,
174                            String description, boolean active)
175                    throws PortalException {
176    
177                    LayoutPrototypePermissionUtil.check(
178                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
179    
180                    return layoutPrototypeLocalService.updateLayoutPrototype(
181                            layoutPrototypeId, nameMap, description, active);
182            }
183    
184            /**
185             * @deprecated As of 7.0.0, replaced by {@link #updateLayoutPrototype(long,
186             *             Map, Map, boolean, ServiceContext)}
187             */
188            @Deprecated
189            @Override
190            public LayoutPrototype updateLayoutPrototype(
191                            long layoutPrototypeId, Map<Locale, String> nameMap,
192                            String description, boolean active, ServiceContext serviceContext)
193                    throws PortalException {
194    
195                    LayoutPrototypePermissionUtil.check(
196                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
197    
198                    return layoutPrototypeLocalService.updateLayoutPrototype(
199                            layoutPrototypeId, nameMap, description, active, serviceContext);
200            }
201    
202    }