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.permission;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.log.Log;
019    import com.liferay.portal.kernel.log.LogFactoryUtil;
020    import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
021    import com.liferay.portal.model.Layout;
022    import com.liferay.portal.model.Portlet;
023    import com.liferay.portal.security.permission.PermissionChecker;
024    
025    import java.util.Collection;
026    
027    import javax.portlet.PortletMode;
028    
029    /**
030     * @author Brian Wing Shun Chan
031     * @author Raymond Aug??
032     */
033    public class PortletPermissionUtil {
034    
035            public static void check(
036                            PermissionChecker permissionChecker, Layout layout,
037                            String portletId, String actionId)
038                    throws PortalException {
039    
040                    getPortletPermission().check(
041                            permissionChecker, layout, portletId, actionId);
042            }
043    
044            public static void check(
045                            PermissionChecker permissionChecker, Layout layout,
046                            String portletId, String actionId, boolean strict)
047                    throws PortalException {
048    
049                    getPortletPermission().check(
050                            permissionChecker, layout, portletId, actionId, strict);
051            }
052    
053            public static void check(
054                            PermissionChecker permissionChecker, long groupId, Layout layout,
055                            String portletId, String actionId)
056                    throws PortalException {
057    
058                    getPortletPermission().check(
059                            permissionChecker, groupId, layout, portletId, actionId);
060            }
061    
062            public static void check(
063                            PermissionChecker permissionChecker, long groupId, Layout layout,
064                            String portletId, String actionId, boolean strict)
065                    throws PortalException {
066    
067                    getPortletPermission().check(
068                            permissionChecker, groupId, layout, portletId, actionId, strict);
069            }
070    
071            public static void check(
072                            PermissionChecker permissionChecker, long groupId, long plid,
073                            String portletId, String actionId)
074                    throws PortalException {
075    
076                    getPortletPermission().check(
077                            permissionChecker, groupId, plid, portletId, actionId);
078            }
079    
080            public static void check(
081                            PermissionChecker permissionChecker, long groupId, long plid,
082                            String portletId, String actionId, boolean strict)
083                    throws PortalException {
084    
085                    getPortletPermission().check(
086                            permissionChecker, groupId, plid, portletId, actionId, strict);
087            }
088    
089            public static void check(
090                            PermissionChecker permissionChecker, long plid, String portletId,
091                            String actionId)
092                    throws PortalException {
093    
094                    getPortletPermission().check(
095                            permissionChecker, plid, portletId, actionId);
096            }
097    
098            public static void check(
099                            PermissionChecker permissionChecker, long plid, String portletId,
100                            String actionId, boolean strict)
101                    throws PortalException {
102    
103                    getPortletPermission().check(
104                            permissionChecker, plid, portletId, actionId, strict);
105            }
106    
107            public static void check(
108                            PermissionChecker permissionChecker, String portletId,
109                            String actionId)
110                    throws PortalException {
111    
112                    getPortletPermission().check(permissionChecker, portletId, actionId);
113            }
114    
115            public static boolean contains(
116                            PermissionChecker permissionChecker, Layout layout, Portlet portlet,
117                            String actionId)
118                    throws PortalException {
119    
120                    return getPortletPermission().contains(
121                            permissionChecker, layout, portlet, actionId);
122            }
123    
124            public static boolean contains(
125                            PermissionChecker permissionChecker, Layout layout, Portlet portlet,
126                            String actionId, boolean strict)
127                    throws PortalException {
128    
129                    return getPortletPermission().contains(
130                            permissionChecker, layout, portlet, actionId, strict);
131            }
132    
133            public static boolean contains(
134                            PermissionChecker permissionChecker, Layout layout,
135                            String portletId, String actionId)
136                    throws PortalException {
137    
138                    return getPortletPermission().contains(
139                            permissionChecker, layout, portletId, actionId);
140            }
141    
142            public static boolean contains(
143                            PermissionChecker permissionChecker, Layout layout,
144                            String portletId, String actionId, boolean strict)
145                    throws PortalException {
146    
147                    return getPortletPermission().contains(
148                            permissionChecker, layout, portletId, actionId, strict);
149            }
150    
151            public static boolean contains(
152                            PermissionChecker permissionChecker, long groupId, Layout layout,
153                            Portlet portlet, String actionId)
154                    throws PortalException {
155    
156                    return getPortletPermission().contains(
157                            permissionChecker, groupId, layout, portlet, actionId);
158            }
159    
160            public static boolean contains(
161                            PermissionChecker permissionChecker, long groupId, Layout layout,
162                            Portlet portlet, String actionId, boolean strict)
163                    throws PortalException {
164    
165                    return getPortletPermission().contains(
166                            permissionChecker, groupId, layout, portlet, actionId, strict);
167            }
168    
169            public static boolean contains(
170                            PermissionChecker permissionChecker, long groupId, Layout layout,
171                            String portletId, String actionId)
172                    throws PortalException {
173    
174                    return getPortletPermission().contains(
175                            permissionChecker, groupId, layout, portletId, actionId);
176            }
177    
178            public static boolean contains(
179                            PermissionChecker permissionChecker, long groupId, Layout layout,
180                            String portletId, String actionId, boolean strict)
181                    throws PortalException {
182    
183                    return getPortletPermission().contains(
184                            permissionChecker, groupId, layout, portletId, actionId, strict);
185            }
186    
187            /**
188             * @deprecated As of 6.2.0, replaced by {@link
189             *             #hasControlPanelAccessPermission(PermissionChecker, long,
190             *             Collection)}
191             */
192            @Deprecated
193            public static boolean contains(
194                    PermissionChecker permissionChecker, long groupId, long plid,
195                    Collection<Portlet> portlets, String actionId) {
196    
197                    try {
198                            return hasControlPanelAccessPermission(
199                                    permissionChecker, groupId, portlets);
200                    }
201                    catch (Exception e) {
202                            _log.error(e, e);
203                    }
204    
205                    return false;
206            }
207    
208            public static boolean contains(
209                            PermissionChecker permissionChecker, long groupId, long plid,
210                            String portletId, String actionId, boolean strict)
211                    throws PortalException {
212    
213                    return getPortletPermission().contains(
214                            permissionChecker, groupId, plid, portletId, actionId, strict);
215            }
216    
217            public static boolean contains(
218                            PermissionChecker permissionChecker, long plid, Portlet portlet,
219                            String actionId)
220                    throws PortalException {
221    
222                    return getPortletPermission().contains(
223                            permissionChecker, plid, portlet, actionId);
224            }
225    
226            public static boolean contains(
227                            PermissionChecker permissionChecker, long plid, Portlet portlet,
228                            String actionId, boolean strict)
229                    throws PortalException {
230    
231                    return getPortletPermission().contains(
232                            permissionChecker, plid, portlet, actionId, strict);
233            }
234    
235            public static boolean contains(
236                            PermissionChecker permissionChecker, long plid, String portletId,
237                            String actionId)
238                    throws PortalException {
239    
240                    return getPortletPermission().contains(
241                            permissionChecker, plid, portletId, actionId);
242            }
243    
244            public static boolean contains(
245                            PermissionChecker permissionChecker, long plid, String portletId,
246                            String actionId, boolean strict)
247                    throws PortalException {
248    
249                    return getPortletPermission().contains(
250                            permissionChecker, plid, portletId, actionId, strict);
251            }
252    
253            public static boolean contains(
254                            PermissionChecker permissionChecker, String portletId,
255                            String actionId)
256                    throws PortalException {
257    
258                    return getPortletPermission().contains(
259                            permissionChecker, portletId, actionId);
260            }
261    
262            public static PortletPermission getPortletPermission() {
263                    PortalRuntimePermission.checkGetBeanProperty(
264                            PortletPermissionUtil.class);
265    
266                    return _portletPermission;
267            }
268    
269            public static String getPrimaryKey(long plid, String portletId) {
270                    return getPortletPermission().getPrimaryKey(plid, portletId);
271            }
272    
273            public static boolean hasAccessPermission(
274                            PermissionChecker permissionChecker, long scopeGroupId,
275                            Layout layout, Portlet portlet, PortletMode portletMode)
276                    throws PortalException {
277    
278                    return getPortletPermission().hasAccessPermission(
279                            permissionChecker, scopeGroupId, layout, portlet, portletMode);
280            }
281    
282            public static boolean hasConfigurationPermission(
283                            PermissionChecker permissionChecker, long groupId, Layout layout,
284                            String actionId)
285                    throws PortalException {
286    
287                    return getPortletPermission().hasConfigurationPermission(
288                            permissionChecker, groupId, layout, actionId);
289            }
290    
291            public static boolean hasControlPanelAccessPermission(
292                            PermissionChecker permissionChecker, long scopeGroupId,
293                            Collection<Portlet> portlets)
294                    throws PortalException {
295    
296                    return getPortletPermission().hasControlPanelAccessPermission(
297                            permissionChecker, scopeGroupId, portlets);
298            }
299    
300            public static boolean hasControlPanelAccessPermission(
301                            PermissionChecker permissionChecker, long scopeGroupId,
302                            Portlet portlet)
303                    throws PortalException {
304    
305                    return getPortletPermission().hasControlPanelAccessPermission(
306                            permissionChecker, scopeGroupId, portlet);
307            }
308    
309            public static boolean hasControlPanelAccessPermission(
310                            PermissionChecker permissionChecker, long scopeGroupId,
311                            String portletId)
312                    throws PortalException {
313    
314                    return getPortletPermission().hasControlPanelAccessPermission(
315                            permissionChecker, scopeGroupId, portletId);
316            }
317    
318            public static boolean hasLayoutManagerPermission(
319                    String portletId, String actionId) {
320    
321                    return getPortletPermission().hasLayoutManagerPermission(
322                            portletId, actionId);
323            }
324    
325            public void setPortletPermission(PortletPermission portletPermission) {
326                    PortalRuntimePermission.checkSetBeanProperty(getClass());
327    
328                    _portletPermission = portletPermission;
329            }
330    
331            private static final Log _log = LogFactoryUtil.getLog(
332                    PortletPermissionUtil.class);
333    
334            private static PortletPermission _portletPermission;
335    
336    }