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 getLayoutPrototype(long layoutPrototypeId)
108                    throws PortalException {
109    
110                    LayoutPrototypePermissionUtil.check(
111                            getPermissionChecker(), layoutPrototypeId, ActionKeys.VIEW);
112    
113                    return layoutPrototypeLocalService.getLayoutPrototype(
114                            layoutPrototypeId);
115            }
116    
117            @Override
118            public List<LayoutPrototype> search(
119                            long companyId, Boolean active,
120                            OrderByComparator<LayoutPrototype> obc)
121                    throws PortalException {
122    
123                    List<LayoutPrototype> filteredLayoutPrototypes =
124                            new ArrayList<LayoutPrototype>();
125    
126                    List<LayoutPrototype> layoutPrototypes =
127                            layoutPrototypeLocalService.search(
128                                    companyId, active, QueryUtil.ALL_POS, QueryUtil.ALL_POS, obc);
129    
130                    for (LayoutPrototype layoutPrototype : layoutPrototypes) {
131                            if (LayoutPrototypePermissionUtil.contains(
132                                            getPermissionChecker(),
133                                            layoutPrototype.getLayoutPrototypeId(), ActionKeys.VIEW)) {
134    
135                                    filteredLayoutPrototypes.add(layoutPrototype);
136                            }
137                    }
138    
139                    return filteredLayoutPrototypes;
140            }
141    
142            @Override
143            public LayoutPrototype updateLayoutPrototype(
144                            long layoutPrototypeId, Map<Locale, String> nameMap,
145                            Map<Locale, String> descriptionMap, boolean active,
146                            ServiceContext serviceContext)
147                    throws PortalException {
148    
149                    LayoutPrototypePermissionUtil.check(
150                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
151    
152                    return layoutPrototypeLocalService.updateLayoutPrototype(
153                            layoutPrototypeId, nameMap, descriptionMap, active, serviceContext);
154            }
155    
156            /**
157             * @deprecated As of 6.2.0, replaced by {@link #updateLayoutPrototype(long,
158             *             Map, String, boolean, ServiceContext)}
159             */
160            @Deprecated
161            @Override
162            public LayoutPrototype updateLayoutPrototype(
163                            long layoutPrototypeId, Map<Locale, String> nameMap,
164                            String description, boolean active)
165                    throws PortalException {
166    
167                    LayoutPrototypePermissionUtil.check(
168                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
169    
170                    return layoutPrototypeLocalService.updateLayoutPrototype(
171                            layoutPrototypeId, nameMap, description, active);
172            }
173    
174            /**
175             * @deprecated As of 7.0.0, replaced by {@link #updateLayoutPrototype(long,
176             *             Map, Map, boolean, ServiceContext)}
177             */
178            @Deprecated
179            @Override
180            public LayoutPrototype updateLayoutPrototype(
181                            long layoutPrototypeId, Map<Locale, String> nameMap,
182                            String description, boolean active, ServiceContext serviceContext)
183                    throws PortalException {
184    
185                    LayoutPrototypePermissionUtil.check(
186                            getPermissionChecker(), layoutPrototypeId, ActionKeys.UPDATE);
187    
188                    return layoutPrototypeLocalService.updateLayoutPrototype(
189                            layoutPrototypeId, nameMap, description, active, serviceContext);
190            }
191    
192    }