001    /**
002     * Copyright (c) 2000-2013 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.exception.SystemException;
019    import com.liferay.portal.kernel.log.Log;
020    import com.liferay.portal.kernel.log.LogFactoryUtil;
021    import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
022    import com.liferay.portal.model.Layout;
023    import com.liferay.portal.model.Portlet;
024    import com.liferay.portal.security.permission.PermissionChecker;
025    
026    import java.util.Collection;
027    
028    import javax.portlet.PortletMode;
029    
030    /**
031     * @author Brian Wing Shun Chan
032     * @author Raymond Aug??
033     */
034    public class PortletPermissionUtil {
035    
036            public static void check(
037                            PermissionChecker permissionChecker, Layout layout,
038                            String portletId, String actionId)
039                    throws PortalException, SystemException {
040    
041                    getPortletPermission().check(
042                            permissionChecker, layout, portletId, actionId);
043            }
044    
045            public static void check(
046                            PermissionChecker permissionChecker, Layout layout,
047                            String portletId, String actionId, boolean strict)
048                    throws PortalException, SystemException {
049    
050                    getPortletPermission().check(
051                            permissionChecker, layout, portletId, actionId, strict);
052            }
053    
054            public static void check(
055                            PermissionChecker permissionChecker, long groupId, Layout layout,
056                            String portletId, String actionId)
057                    throws PortalException, SystemException {
058    
059                    getPortletPermission().check(
060                            permissionChecker, groupId, layout, portletId, actionId);
061            }
062    
063            public static void check(
064                            PermissionChecker permissionChecker, long groupId, Layout layout,
065                            String portletId, String actionId, boolean strict)
066                    throws PortalException, SystemException {
067    
068                    getPortletPermission().check(
069                            permissionChecker, groupId, layout, portletId, actionId, strict);
070            }
071    
072            public static void check(
073                            PermissionChecker permissionChecker, long groupId, long plid,
074                            String portletId, String actionId)
075                    throws PortalException, SystemException {
076    
077                    getPortletPermission().check(
078                            permissionChecker, groupId, plid, portletId, actionId);
079            }
080    
081            public static void check(
082                            PermissionChecker permissionChecker, long groupId, long plid,
083                            String portletId, String actionId, boolean strict)
084                    throws PortalException, SystemException {
085    
086                    getPortletPermission().check(
087                            permissionChecker, groupId, plid, portletId, actionId, strict);
088            }
089    
090            public static void check(
091                            PermissionChecker permissionChecker, long plid, String portletId,
092                            String actionId)
093                    throws PortalException, SystemException {
094    
095                    getPortletPermission().check(
096                            permissionChecker, plid, portletId, actionId);
097            }
098    
099            public static void check(
100                            PermissionChecker permissionChecker, long plid, String portletId,
101                            String actionId, boolean strict)
102                    throws PortalException, SystemException {
103    
104                    getPortletPermission().check(
105                            permissionChecker, plid, portletId, actionId, strict);
106            }
107    
108            public static void check(
109                            PermissionChecker permissionChecker, String portletId,
110                            String actionId)
111                    throws PortalException, SystemException {
112    
113                    getPortletPermission().check(permissionChecker, portletId, actionId);
114            }
115    
116            public static boolean contains(
117                            PermissionChecker permissionChecker, Layout layout, Portlet portlet,
118                            String actionId)
119                    throws PortalException, SystemException {
120    
121                    return getPortletPermission().contains(
122                            permissionChecker, layout, portlet, actionId);
123            }
124    
125            public static boolean contains(
126                            PermissionChecker permissionChecker, Layout layout, Portlet portlet,
127                            String actionId, boolean strict)
128                    throws PortalException, SystemException {
129    
130                    return getPortletPermission().contains(
131                            permissionChecker, layout, portlet, actionId, strict);
132            }
133    
134            public static boolean contains(
135                            PermissionChecker permissionChecker, Layout layout,
136                            String portletId, String actionId)
137                    throws PortalException, SystemException {
138    
139                    return getPortletPermission().contains(
140                            permissionChecker, layout, portletId, actionId);
141            }
142    
143            public static boolean contains(
144                            PermissionChecker permissionChecker, Layout layout,
145                            String portletId, String actionId, boolean strict)
146                    throws PortalException, SystemException {
147    
148                    return getPortletPermission().contains(
149                            permissionChecker, layout, portletId, actionId, strict);
150            }
151    
152            public static boolean contains(
153                            PermissionChecker permissionChecker, long groupId, Layout layout,
154                            Portlet portlet, String actionId)
155                    throws PortalException, SystemException {
156    
157                    return getPortletPermission().contains(
158                            permissionChecker, groupId, layout, portlet, actionId);
159            }
160    
161            public static boolean contains(
162                            PermissionChecker permissionChecker, long groupId, Layout layout,
163                            Portlet portlet, String actionId, boolean strict)
164                    throws PortalException, SystemException {
165    
166                    return getPortletPermission().contains(
167                            permissionChecker, groupId, layout, portlet, actionId, strict);
168            }
169    
170            public static boolean contains(
171                            PermissionChecker permissionChecker, long groupId, Layout layout,
172                            String portletId, String actionId)
173                    throws PortalException, SystemException {
174    
175                    return getPortletPermission().contains(
176                            permissionChecker, groupId, layout, portletId, actionId);
177            }
178    
179            public static boolean contains(
180                            PermissionChecker permissionChecker, long groupId, Layout layout,
181                            String portletId, String actionId, boolean strict)
182                    throws PortalException, SystemException {
183    
184                    return getPortletPermission().contains(
185                            permissionChecker, groupId, layout, portletId, actionId, strict);
186            }
187    
188            /**
189             * @deprecated As of 6.2.0, replaced by {@link
190             *             #hasControlPanelAccessPermission(PermissionChecker, long,
191             *             Collection)}
192             */
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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, SystemException {
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 Log _log = LogFactoryUtil.getLog(
332                    PortletPermissionUtil.class);
333    
334            private static PortletPermission _portletPermission;
335    
336    }