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                    }
202                    catch (Exception e) {
203                            _log.error(e, e);
204                    }
205    
206                    return false;
207            }
208    
209            public static boolean contains(
210                            PermissionChecker permissionChecker, long groupId, long plid,
211                            String portletId, String actionId, boolean strict)
212                    throws PortalException, SystemException {
213    
214                    return getPortletPermission().contains(
215                            permissionChecker, groupId, plid, portletId, actionId, strict);
216            }
217    
218            public static boolean contains(
219                            PermissionChecker permissionChecker, long plid, Portlet portlet,
220                            String actionId)
221                    throws PortalException, SystemException {
222    
223                    return getPortletPermission().contains(
224                            permissionChecker, plid, portlet, actionId);
225            }
226    
227            public static boolean contains(
228                            PermissionChecker permissionChecker, long plid, Portlet portlet,
229                            String actionId, boolean strict)
230                    throws PortalException, SystemException {
231    
232                    return getPortletPermission().contains(
233                            permissionChecker, plid, portlet, actionId, strict);
234            }
235    
236            public static boolean contains(
237                            PermissionChecker permissionChecker, long plid, String portletId,
238                            String actionId)
239                    throws PortalException, SystemException {
240    
241                    return getPortletPermission().contains(
242                            permissionChecker, plid, portletId, actionId);
243            }
244    
245            public static boolean contains(
246                            PermissionChecker permissionChecker, long plid, String portletId,
247                            String actionId, boolean strict)
248                    throws PortalException, SystemException {
249    
250                    return getPortletPermission().contains(
251                            permissionChecker, plid, portletId, actionId, strict);
252            }
253    
254            public static boolean contains(
255                            PermissionChecker permissionChecker, String portletId,
256                            String actionId)
257                    throws PortalException, SystemException {
258    
259                    return getPortletPermission().contains(
260                            permissionChecker, portletId, actionId);
261            }
262    
263            public static PortletPermission getPortletPermission() {
264                    PortalRuntimePermission.checkGetBeanProperty(
265                            PortletPermissionUtil.class);
266    
267                    return _portletPermission;
268            }
269    
270            public static String getPrimaryKey(long plid, String portletId) {
271                    return getPortletPermission().getPrimaryKey(plid, portletId);
272            }
273    
274            public static boolean hasAccessPermission(
275                            PermissionChecker permissionChecker, long scopeGroupId,
276                            Layout layout, Portlet portlet, PortletMode portletMode)
277                    throws PortalException, SystemException {
278    
279                    return getPortletPermission().hasAccessPermission(
280                            permissionChecker, scopeGroupId, layout, portlet, portletMode);
281            }
282    
283            public static boolean hasConfigurationPermission(
284                            PermissionChecker permissionChecker, long groupId, Layout layout,
285                            String actionId)
286                    throws PortalException, SystemException {
287    
288                    return getPortletPermission().hasConfigurationPermission(
289                            permissionChecker, groupId, layout, actionId);
290            }
291    
292            public static boolean hasControlPanelAccessPermission(
293                            PermissionChecker permissionChecker, long scopeGroupId,
294                            Collection<Portlet> portlets)
295                    throws PortalException, SystemException {
296    
297                    return getPortletPermission().hasControlPanelAccessPermission(
298                            permissionChecker, scopeGroupId, portlets);
299            }
300    
301            public static boolean hasControlPanelAccessPermission(
302                            PermissionChecker permissionChecker, long scopeGroupId,
303                            Portlet portlet)
304                    throws PortalException, SystemException {
305    
306                    return getPortletPermission().hasControlPanelAccessPermission(
307                            permissionChecker, scopeGroupId, portlet);
308            }
309    
310            public static boolean hasControlPanelAccessPermission(
311                            PermissionChecker permissionChecker, long scopeGroupId,
312                            String portletId)
313                    throws PortalException, SystemException {
314    
315                    return getPortletPermission().hasControlPanelAccessPermission(
316                            permissionChecker, scopeGroupId, portletId);
317            }
318    
319            public static boolean hasLayoutManagerPermission(
320                    String portletId, String actionId) {
321    
322                    return getPortletPermission().hasLayoutManagerPermission(
323                            portletId, actionId);
324            }
325    
326            public void setPortletPermission(PortletPermission portletPermission) {
327                    PortalRuntimePermission.checkSetBeanProperty(getClass());
328    
329                    _portletPermission = portletPermission;
330            }
331    
332            private static Log _log = LogFactoryUtil.getLog(
333                    PortletPermissionUtil.class);
334    
335            private static PortletPermission _portletPermission;
336    
337    }