001    /**
002     * Copyright (c) 2000-2012 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;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.transaction.Isolation;
020    import com.liferay.portal.kernel.transaction.Propagation;
021    import com.liferay.portal.kernel.transaction.Transactional;
022    
023    /**
024     * The interface for the resource permission local service.
025     *
026     * <p>
027     * This is a local service. Methods of this service will not have security checks based on the propagated JAAS credentials because this service can only be accessed from within the same VM.
028     * </p>
029     *
030     * @author Brian Wing Shun Chan
031     * @see ResourcePermissionLocalServiceUtil
032     * @see com.liferay.portal.service.base.ResourcePermissionLocalServiceBaseImpl
033     * @see com.liferay.portal.service.impl.ResourcePermissionLocalServiceImpl
034     * @generated
035     */
036    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
037            PortalException.class, SystemException.class})
038    public interface ResourcePermissionLocalService extends BaseLocalService,
039            PersistedModelLocalService {
040            /*
041             * NOTE FOR DEVELOPERS:
042             *
043             * Never modify or reference this interface directly. Always use {@link ResourcePermissionLocalServiceUtil} to access the resource permission local service. Add custom service methods to {@link com.liferay.portal.service.impl.ResourcePermissionLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
044             */
045    
046            /**
047            * Adds the resource permission to the database. Also notifies the appropriate model listeners.
048            *
049            * @param resourcePermission the resource permission
050            * @return the resource permission that was added
051            * @throws SystemException if a system exception occurred
052            */
053            public com.liferay.portal.model.ResourcePermission addResourcePermission(
054                    com.liferay.portal.model.ResourcePermission resourcePermission)
055                    throws com.liferay.portal.kernel.exception.SystemException;
056    
057            /**
058            * Creates a new resource permission with the primary key. Does not add the resource permission to the database.
059            *
060            * @param resourcePermissionId the primary key for the new resource permission
061            * @return the new resource permission
062            */
063            public com.liferay.portal.model.ResourcePermission createResourcePermission(
064                    long resourcePermissionId);
065    
066            /**
067            * Deletes the resource permission with the primary key from the database. Also notifies the appropriate model listeners.
068            *
069            * @param resourcePermissionId the primary key of the resource permission
070            * @return the resource permission that was removed
071            * @throws PortalException if a resource permission with the primary key could not be found
072            * @throws SystemException if a system exception occurred
073            */
074            public com.liferay.portal.model.ResourcePermission deleteResourcePermission(
075                    long resourcePermissionId)
076                    throws com.liferay.portal.kernel.exception.PortalException,
077                            com.liferay.portal.kernel.exception.SystemException;
078    
079            /**
080            * Deletes the resource permission from the database. Also notifies the appropriate model listeners.
081            *
082            * @param resourcePermission the resource permission
083            * @return the resource permission that was removed
084            * @throws SystemException if a system exception occurred
085            */
086            public com.liferay.portal.model.ResourcePermission deleteResourcePermission(
087                    com.liferay.portal.model.ResourcePermission resourcePermission)
088                    throws com.liferay.portal.kernel.exception.SystemException;
089    
090            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
091    
092            /**
093            * Performs a dynamic query on the database and returns the matching rows.
094            *
095            * @param dynamicQuery the dynamic query
096            * @return the matching rows
097            * @throws SystemException if a system exception occurred
098            */
099            @SuppressWarnings("rawtypes")
100            public java.util.List dynamicQuery(
101                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
102                    throws com.liferay.portal.kernel.exception.SystemException;
103    
104            /**
105            * Performs a dynamic query on the database and returns a range of the matching rows.
106            *
107            * <p>
108            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.ResourcePermissionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
109            * </p>
110            *
111            * @param dynamicQuery the dynamic query
112            * @param start the lower bound of the range of model instances
113            * @param end the upper bound of the range of model instances (not inclusive)
114            * @return the range of matching rows
115            * @throws SystemException if a system exception occurred
116            */
117            @SuppressWarnings("rawtypes")
118            public java.util.List dynamicQuery(
119                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
120                    int end) throws com.liferay.portal.kernel.exception.SystemException;
121    
122            /**
123            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
124            *
125            * <p>
126            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.ResourcePermissionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
127            * </p>
128            *
129            * @param dynamicQuery the dynamic query
130            * @param start the lower bound of the range of model instances
131            * @param end the upper bound of the range of model instances (not inclusive)
132            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
133            * @return the ordered range of matching rows
134            * @throws SystemException if a system exception occurred
135            */
136            @SuppressWarnings("rawtypes")
137            public java.util.List dynamicQuery(
138                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
139                    int end,
140                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
141                    throws com.liferay.portal.kernel.exception.SystemException;
142    
143            /**
144            * Returns the number of rows that match the dynamic query.
145            *
146            * @param dynamicQuery the dynamic query
147            * @return the number of rows that match the dynamic query
148            * @throws SystemException if a system exception occurred
149            */
150            public long dynamicQueryCount(
151                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
152                    throws com.liferay.portal.kernel.exception.SystemException;
153    
154            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
155            public com.liferay.portal.model.ResourcePermission fetchResourcePermission(
156                    long resourcePermissionId)
157                    throws com.liferay.portal.kernel.exception.SystemException;
158    
159            /**
160            * Returns the resource permission with the primary key.
161            *
162            * @param resourcePermissionId the primary key of the resource permission
163            * @return the resource permission
164            * @throws PortalException if a resource permission with the primary key could not be found
165            * @throws SystemException if a system exception occurred
166            */
167            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
168            public com.liferay.portal.model.ResourcePermission getResourcePermission(
169                    long resourcePermissionId)
170                    throws com.liferay.portal.kernel.exception.PortalException,
171                            com.liferay.portal.kernel.exception.SystemException;
172    
173            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
174            public com.liferay.portal.model.PersistedModel getPersistedModel(
175                    java.io.Serializable primaryKeyObj)
176                    throws com.liferay.portal.kernel.exception.PortalException,
177                            com.liferay.portal.kernel.exception.SystemException;
178    
179            /**
180            * Returns a range of all the resource permissions.
181            *
182            * <p>
183            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.ResourcePermissionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
184            * </p>
185            *
186            * @param start the lower bound of the range of resource permissions
187            * @param end the upper bound of the range of resource permissions (not inclusive)
188            * @return the range of resource permissions
189            * @throws SystemException if a system exception occurred
190            */
191            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
192            public java.util.List<com.liferay.portal.model.ResourcePermission> getResourcePermissions(
193                    int start, int end)
194                    throws com.liferay.portal.kernel.exception.SystemException;
195    
196            /**
197            * Returns the number of resource permissions.
198            *
199            * @return the number of resource permissions
200            * @throws SystemException if a system exception occurred
201            */
202            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
203            public int getResourcePermissionsCount()
204                    throws com.liferay.portal.kernel.exception.SystemException;
205    
206            /**
207            * Updates the resource permission in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
208            *
209            * @param resourcePermission the resource permission
210            * @return the resource permission that was updated
211            * @throws SystemException if a system exception occurred
212            */
213            public com.liferay.portal.model.ResourcePermission updateResourcePermission(
214                    com.liferay.portal.model.ResourcePermission resourcePermission)
215                    throws com.liferay.portal.kernel.exception.SystemException;
216    
217            /**
218            * Returns the Spring bean ID for this bean.
219            *
220            * @return the Spring bean ID for this bean
221            */
222            public java.lang.String getBeanIdentifier();
223    
224            /**
225            * Sets the Spring bean ID for this bean.
226            *
227            * @param beanIdentifier the Spring bean ID for this bean
228            */
229            public void setBeanIdentifier(java.lang.String beanIdentifier);
230    
231            /**
232            * Grants the role permission at the scope to perform the action on
233            * resources of the type. Existing actions are retained.
234            *
235            * <p>
236            * This method cannot be used to grant individual scope permissions, but is
237            * only intended for adding permissions at the company, group, and
238            * group-template scopes. For example, this method could be used to grant a
239            * company scope permission to edit message board posts.
240            * </p>
241            *
242            * <p>
243            * If a company scope permission is granted to resources that the role
244            * already had group scope permissions to, the group scope permissions are
245            * deleted. Likewise, if a group scope permission is granted to resources
246            * that the role already had company scope permissions to, the company scope
247            * permissions are deleted. Be aware that this latter behavior can result in
248            * an overall reduction in permissions for the role.
249            * </p>
250            *
251            * <p>
252            * Depending on the scope, the value of <code>primKey</code> will have
253            * different meanings. For more information, see {@link
254            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
255            * </p>
256            *
257            * @param companyId the primary key of the company
258            * @param name the resource's name, which can be either a class name or a
259            portlet ID
260            * @param scope the scope. This method only supports company, group, and
261            group-template scope.
262            * @param primKey the primary key
263            * @param roleId the primary key of the role
264            * @param actionId the action ID
265            * @throws PortalException if scope was set to individual scope or if a role
266            with the primary key or a resource action with the name and
267            action ID could not be found
268            * @throws SystemException if a system exception occurred
269            */
270            public void addResourcePermission(long companyId, java.lang.String name,
271                    int scope, java.lang.String primKey, long roleId,
272                    java.lang.String actionId)
273                    throws com.liferay.portal.kernel.exception.PortalException,
274                            com.liferay.portal.kernel.exception.SystemException;
275    
276            /**
277            * Grants the role permissions at the scope to perform the actions on all
278            * resources of the type. Existing actions are retained.
279            *
280            * <p>
281            * This method should only be used to add default permissions to existing
282            * resources en masse during upgrades or while verifying permissions. For
283            * example, this method could be used to grant site members individual scope
284            * permissions to view all blog posts.
285            * </p>
286            *
287            * @param resourceName the resource's name, which can be either a class
288            name or a portlet ID
289            * @param roleName the role's name
290            * @param scope the scope
291            * @param resourceActionBitwiseValue the bitwise IDs of the actions
292            * @throws SystemException if a system exception occurred
293            */
294            public void addResourcePermissions(java.lang.String resourceName,
295                    java.lang.String roleName, int scope, long resourceActionBitwiseValue)
296                    throws com.liferay.portal.kernel.exception.SystemException;
297    
298            /**
299            * Deletes all resource permissions at the scope to resources of the type.
300            * This method should not be confused with any of the
301            * <code>removeResourcePermission</code> methods, as its purpose is very
302            * different. This method should only be used for deleting resource
303            * permissions that refer to a resource when that resource is deleted. For
304            * example this method could be used to delete all individual scope
305            * permissions to a blog post when it is deleted.
306            *
307            * <p>
308            * Depending on the scope, the value of <code>primKey</code> will have
309            * different meanings. For more information, see {@link
310            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
311            * </p>
312            *
313            * @param companyId the primary key of the company
314            * @param name the resource's name, which can be either a class name or a
315            portlet ID
316            * @param scope the scope
317            * @param primKey the primary key
318            * @throws PortalException if a portal exception occurred
319            * @throws SystemException if a system exception occurred
320            */
321            public void deleteResourcePermissions(long companyId,
322                    java.lang.String name, int scope, long primKey)
323                    throws com.liferay.portal.kernel.exception.PortalException,
324                            com.liferay.portal.kernel.exception.SystemException;
325    
326            /**
327            * Deletes all resource permissions at the scope to resources of the type.
328            * This method should not be confused with any of the
329            * <code>removeResourcePermission</code> methods, as its purpose is very
330            * different. This method should only be used for deleting resource
331            * permissions that refer to a resource when that resource is deleted. For
332            * example this method could be used to delete all individual scope
333            * permissions to a blog post when it is deleted.
334            *
335            * <p>
336            * Depending on the scope, the value of <code>primKey</code> will have
337            * different meanings. For more information, see {@link
338            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
339            * </p>
340            *
341            * @param companyId the primary key of the company
342            * @param name the resource's name, which can be either a class name or a
343            portlet ID
344            * @param scope the scope
345            * @param primKey the primary key
346            * @throws PortalException if a portal exception occurred
347            * @throws SystemException if a system exception occurred
348            */
349            public void deleteResourcePermissions(long companyId,
350                    java.lang.String name, int scope, java.lang.String primKey)
351                    throws com.liferay.portal.kernel.exception.PortalException,
352                            com.liferay.portal.kernel.exception.SystemException;
353    
354            /**
355            * Returns the intersection of action IDs the role has permission at the
356            * scope to perform on resources of the type.
357            *
358            * @param companyId he primary key of the company
359            * @param name the resource's name, which can be either a class name or a
360            portlet ID
361            * @param scope the scope
362            * @param primKey the primary key
363            * @param roleId the primary key of the role
364            * @param actionIds the action IDs
365            * @return the intersection of action IDs the role has permission at the
366            scope to perform on resources of the type
367            * @throws PortalException if a resouce action could not be found for any
368            one of the actions on the resource
369            * @throws SystemException if a system exception occurred
370            */
371            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
372            public java.util.List<java.lang.String> getAvailableResourcePermissionActionIds(
373                    long companyId, java.lang.String name, int scope,
374                    java.lang.String primKey, long roleId,
375                    java.util.Collection<java.lang.String> actionIds)
376                    throws com.liferay.portal.kernel.exception.PortalException,
377                            com.liferay.portal.kernel.exception.SystemException;
378    
379            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
380            public java.util.Map<java.lang.Long, java.util.Set<java.lang.String>> getAvailableResourcePermissionActionIds(
381                    long companyId, java.lang.String name, int scope,
382                    java.lang.String primKey, long[] roleIds,
383                    java.util.Collection<java.lang.String> actionIds)
384                    throws com.liferay.portal.kernel.exception.PortalException,
385                            com.liferay.portal.kernel.exception.SystemException;
386    
387            /**
388            * Returns the resource permission for the role at the scope to perform the
389            * actions on resources of the type.
390            *
391            * @param companyId the primary key of the company
392            * @param name the resource's name, which can be either a class name or a
393            portlet ID
394            * @param scope the scope
395            * @param primKey the primary key
396            * @param roleId the primary key of the role
397            * @return the resource permission for the role at the scope to perform the
398            actions on resources of the type
399            * @throws PortalException if no matching resources could be found
400            * @throws SystemException if a system exception occurred
401            */
402            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
403            public com.liferay.portal.model.ResourcePermission getResourcePermission(
404                    long companyId, java.lang.String name, int scope,
405                    java.lang.String primKey, long roleId)
406                    throws com.liferay.portal.kernel.exception.PortalException,
407                            com.liferay.portal.kernel.exception.SystemException;
408    
409            /**
410            * Returns all the resource permissions at the scope of the type.
411            *
412            * @param companyId the primary key of the company
413            * @param name the resource's name, which can be either a class name or a
414            portlet ID
415            * @param scope the scope
416            * @param primKey the primary key
417            * @return the resource permissions at the scope of the type
418            * @throws SystemException if a system exception occurred
419            */
420            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
421            public java.util.List<com.liferay.portal.model.ResourcePermission> getResourcePermissions(
422                    long companyId, java.lang.String name, int scope,
423                    java.lang.String primKey)
424                    throws com.liferay.portal.kernel.exception.SystemException;
425    
426            /**
427            * Returns the number of resource permissions at the scope of the type.
428            *
429            * @param companyId the primary key of the company
430            * @param name the resource's name, which can be either a class name or a
431            portlet ID
432            * @param scope the scope
433            * @param primKey the primary key
434            * @return the number of resource permissions at the scope of the type
435            * @throws SystemException if a system exception occurred
436            */
437            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
438            public int getResourcePermissionsCount(long companyId,
439                    java.lang.String name, int scope, java.lang.String primKey)
440                    throws com.liferay.portal.kernel.exception.SystemException;
441    
442            /**
443            * Returns the resource permissions that apply to the resource.
444            *
445            * @param companyId the primary key of the resource's company
446            * @param groupId the primary key of the resource's group
447            * @param name the resource's name, which can be either a class name or a
448            portlet ID
449            * @param primKey the primary key of the resource
450            * @return the resource permissions associated with the resource
451            * @throws SystemException if a system exception occurred
452            */
453            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
454            public java.util.List<com.liferay.portal.model.ResourcePermission> getResourceResourcePermissions(
455                    long companyId, long groupId, java.lang.String name,
456                    java.lang.String primKey)
457                    throws com.liferay.portal.kernel.exception.SystemException;
458    
459            /**
460            * Returns all the resource permissions for the role.
461            *
462            * @param roleId the primary key of the role
463            * @return the resource permissions for the role
464            * @throws SystemException if a system exception occurred
465            */
466            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
467            public java.util.List<com.liferay.portal.model.ResourcePermission> getRoleResourcePermissions(
468                    long roleId) throws com.liferay.portal.kernel.exception.SystemException;
469    
470            /**
471            * Returns a range of all the resource permissions for the role at the
472            * scopes.
473            *
474            * <p>
475            * Useful when paginating results. Returns a maximum of <code>end -
476            * start</code> instances. <code>start</code> and <code>end</code> are not
477            * primary keys, they are indexes in the result set. Thus, <code>0</code>
478            * refers to the first result in the set. Setting both <code>start</code>
479            * and <code>end</code> to {@link
480            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
481            * result set.
482            * </p>
483            *
484            * @param roleId the primary key of the role
485            * @param scopes the scopes
486            * @param start the lower bound of the range of results
487            * @param end the upper bound of the range of results (not inclusive)
488            * @return the range of resource permissions for the role at the scopes
489            * @throws SystemException if a system exception occurred
490            */
491            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
492            public java.util.List<com.liferay.portal.model.ResourcePermission> getRoleResourcePermissions(
493                    long roleId, int[] scopes, int start, int end)
494                    throws com.liferay.portal.kernel.exception.SystemException;
495    
496            /**
497            * Returns all the resource permissions where scope = any &#63;.
498            *
499            * <p>
500            * Useful when paginating results. Returns a maximum of <code>end -
501            * start</code> instances. <code>start</code> and <code>end</code> are not
502            * primary keys, they are indexes in the result set. Thus, <code>0</code>
503            * refers to the first result in the set. Setting both <code>start</code>
504            * and <code>end</code> to {@link
505            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
506            * result set.
507            * </p>
508            *
509            * @param scopes the scopes
510            * @return the resource permissions where scope = any &#63;
511            * @throws SystemException if a system exception occurred
512            */
513            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
514            public java.util.List<com.liferay.portal.model.ResourcePermission> getScopeResourcePermissions(
515                    int[] scopes)
516                    throws com.liferay.portal.kernel.exception.SystemException;
517    
518            /**
519            * Returns <code>true</code> if the resource permission grants permission to
520            * perform the resource action. Note that this method does not ensure that
521            * the resource permission refers to the same type of resource as the
522            * resource action.
523            *
524            * @param resourcePermission the resource permission
525            * @param resourceAction the resource action
526            * @return <code>true</code> if the resource permission grants permission to
527            perform the resource action
528            */
529            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
530            public boolean hasActionId(
531                    com.liferay.portal.model.ResourcePermission resourcePermission,
532                    com.liferay.portal.model.ResourceAction resourceAction);
533    
534            /**
535            * Returns <code>true</code> if the roles have permission at the scope to
536            * perform the action on the resources.
537            *
538            * <p>
539            * Depending on the scope, the value of <code>primKey</code> will have
540            * different meanings. For more information, see {@link
541            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
542            * </p>
543            *
544            * @param resources the resources
545            * @param roleIds the primary keys of the roles
546            * @param actionId the action ID
547            * @return <code>true</code> if any one of the roles has permission to
548            perform the action on any one of the resources;
549            <code>false</code> otherwise
550            * @throws PortalException if any one of the roles with the primary keys
551            could not be found or if a resource action with the name and
552            action ID could not be found
553            * @throws SystemException if a system exception occurred
554            */
555            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
556            public boolean hasResourcePermission(
557                    java.util.List<com.liferay.portal.model.Resource> resources,
558                    long[] roleIds, java.lang.String actionId)
559                    throws com.liferay.portal.kernel.exception.PortalException,
560                            com.liferay.portal.kernel.exception.SystemException;
561    
562            /**
563            * Returns <code>true</code> if the role has permission at the scope to
564            * perform the action on resources of the type.
565            *
566            * <p>
567            * Depending on the scope, the value of <code>primKey</code> will have
568            * different meanings. For more information, see {@link
569            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
570            * </p>
571            *
572            * @param companyId the primary key of the company
573            * @param name the resource's name, which can be either a class name or a
574            portlet ID
575            * @param scope the scope
576            * @param primKey the primary key
577            * @param roleId the primary key of the role
578            * @param actionId the action ID
579            * @return <code>true</code> if the role has permission to perform the
580            action on the resource; <code>false</code> otherwise
581            * @throws PortalException if a role with the primary key or a resource
582            action with the name and action ID could not be found
583            * @throws SystemException if a system exception occurred
584            */
585            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
586            public boolean hasResourcePermission(long companyId, java.lang.String name,
587                    int scope, java.lang.String primKey, long roleId,
588                    java.lang.String actionId)
589                    throws com.liferay.portal.kernel.exception.PortalException,
590                            com.liferay.portal.kernel.exception.SystemException;
591    
592            /**
593            * Returns <code>true</code> if the roles have permission at the scope to
594            * perform the action on resources of the type.
595            *
596            * <p>
597            * Depending on the scope, the value of <code>primKey</code> will have
598            * different meanings. For more information, see {@link
599            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
600            * </p>
601            *
602            * @param companyId the primary key of the company
603            * @param name the resource's name, which can be either a class name or a
604            portlet ID
605            * @param scope the scope
606            * @param primKey the primary key
607            * @param roleIds the primary keys of the roles
608            * @param actionId the action ID
609            * @return <code>true</code> if any one of the roles has permission to
610            perform the action on the resource; <code>false</code> otherwise
611            * @throws PortalException if any one of the roles with the primary keys
612            could not be found or if a resource action with the name and
613            action ID could not be found
614            * @throws SystemException if a system exception occurred
615            */
616            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
617            public boolean hasResourcePermission(long companyId, java.lang.String name,
618                    int scope, java.lang.String primKey, long[] roleIds,
619                    java.lang.String actionId)
620                    throws com.liferay.portal.kernel.exception.PortalException,
621                            com.liferay.portal.kernel.exception.SystemException;
622    
623            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
624            public boolean[] hasResourcePermissions(long companyId,
625                    java.lang.String name, int scope, java.lang.String primKey,
626                    long[] roleIds, java.lang.String actionId)
627                    throws com.liferay.portal.kernel.exception.PortalException,
628                            com.liferay.portal.kernel.exception.SystemException;
629    
630            /**
631            * Returns <code>true</code> if the role has permission at the scope to
632            * perform the action on the resource.
633            *
634            * <p>
635            * Depending on the scope, the value of <code>primKey</code> will have
636            * different meanings. For more information, see {@link
637            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
638            * </p>
639            *
640            * @param companyId the primary key of the company
641            * @param name the resource's name, which can be either a class name or a
642            portlet ID
643            * @param scope the scope
644            * @param roleId the primary key of the role
645            * @param actionId the action ID
646            * @return <code>true</code> if the role has permission to perform the
647            action on the resource; <code>false</code> otherwise
648            * @throws PortalException if a role with the primary key or a resource
649            action with the name and action ID could not be found
650            * @throws SystemException if a system exception occurred
651            */
652            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
653            public boolean hasScopeResourcePermission(long companyId,
654                    java.lang.String name, int scope, long roleId, java.lang.String actionId)
655                    throws com.liferay.portal.kernel.exception.PortalException,
656                            com.liferay.portal.kernel.exception.SystemException;
657    
658            /**
659            * Reassigns all the resource permissions from the source role to the
660            * destination role, and deletes the source role.
661            *
662            * @param fromRoleId the primary key of the source role
663            * @param toRoleId the primary key of the destination role
664            * @throws PortalException if a role with the primary key could not be found
665            * @throws SystemException if a system exception occurred
666            */
667            public void mergePermissions(long fromRoleId, long toRoleId)
668                    throws com.liferay.portal.kernel.exception.PortalException,
669                            com.liferay.portal.kernel.exception.SystemException;
670    
671            /**
672            * Grants the role default permissions to all the resources of the type and
673            * at the scope stored in the resource permission, deletes the resource
674            * permission, and deletes the resource permission's role if it has no
675            * permissions remaining.
676            *
677            * @param resourcePermissionId the primary key of the resource permission
678            * @param toRoleId the primary key of the role
679            * @throws PortalException if a resource permission or role with the primary
680            key could not be found
681            * @throws SystemException if a system exception occurred
682            */
683            public void reassignPermissions(long resourcePermissionId, long toRoleId)
684                    throws com.liferay.portal.kernel.exception.PortalException,
685                            com.liferay.portal.kernel.exception.SystemException;
686    
687            /**
688            * Revokes permission at the scope from the role to perform the action on
689            * resources of the type. For example, this method could be used to revoke a
690            * group scope permission to edit blog posts.
691            *
692            * <p>
693            * Depending on the scope, the value of <code>primKey</code> will have
694            * different meanings. For more information, see {@link
695            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
696            * </p>
697            *
698            * @param companyId the primary key of the company
699            * @param name the resource's name, which can be either a class name or a
700            portlet ID
701            * @param scope the scope
702            * @param primKey the primary key
703            * @param roleId the primary key of the role
704            * @param actionId the action ID
705            * @throws PortalException if a role with the primary key or a resource
706            action with the name and action ID could not be found
707            * @throws SystemException if a system exception occurred
708            */
709            public void removeResourcePermission(long companyId, java.lang.String name,
710                    int scope, java.lang.String primKey, long roleId,
711                    java.lang.String actionId)
712                    throws com.liferay.portal.kernel.exception.PortalException,
713                            com.liferay.portal.kernel.exception.SystemException;
714    
715            /**
716            * Revokes all permissions at the scope from the role to perform the action
717            * on resources of the type. For example, this method could be used to
718            * revoke all individual scope permissions to edit blog posts from site
719            * members.
720            *
721            * @param companyId the primary key of the company
722            * @param name the resource's name, which can be either a class name or a
723            portlet ID
724            * @param scope the scope
725            * @param roleId the primary key of the role
726            * @param actionId the action ID
727            * @throws PortalException if a role with the primary key or a resource
728            action with the name and action ID could not be found
729            * @throws SystemException if a system exception occurred
730            */
731            public void removeResourcePermissions(long companyId,
732                    java.lang.String name, int scope, long roleId, java.lang.String actionId)
733                    throws com.liferay.portal.kernel.exception.PortalException,
734                            com.liferay.portal.kernel.exception.SystemException;
735    
736            /**
737            * Updates the role's permissions at the scope, setting the actions that can
738            * be performed on resources of the type, also setting the owner of any
739            * newly created resource permissions. Existing actions are replaced.
740            *
741            * <p>
742            * This method can be used to set permissions at any scope, but it is
743            * generally only used at the individual scope. For example, it could be
744            * used to set the guest permissions on a blog post.
745            * </p>
746            *
747            * <p>
748            * Depending on the scope, the value of <code>primKey</code> will have
749            * different meanings. For more information, see {@link
750            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
751            * </p>
752            *
753            * @param companyId the primary key of the company
754            * @param name the resource's name, which can be either a class name or a
755            portlet ID
756            * @param scope the scope
757            * @param primKey the primary key
758            * @param roleId the primary key of the role
759            * @param ownerId the primary key of the owner (generally the user that
760            created the resource)
761            * @param actionIds the action IDs of the actions
762            * @throws PortalException if a role with the primary key or a resource
763            action with the name and action ID could not be found
764            * @throws SystemException if a system exception occurred
765            */
766            public void setOwnerResourcePermissions(long companyId,
767                    java.lang.String name, int scope, java.lang.String primKey,
768                    long roleId, long ownerId, java.lang.String[] actionIds)
769                    throws com.liferay.portal.kernel.exception.PortalException,
770                            com.liferay.portal.kernel.exception.SystemException;
771    
772            /**
773            * Updates the role's permissions at the scope, setting the actions that can
774            * be performed on resources of the type. Existing actions are replaced.
775            *
776            * <p>
777            * This method can be used to set permissions at any scope, but it is
778            * generally only used at the individual scope. For example, it could be
779            * used to set the guest permissions on a blog post.
780            * </p>
781            *
782            * <p>
783            * Depending on the scope, the value of <code>primKey</code> will have
784            * different meanings. For more information, see {@link
785            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
786            * </p>
787            *
788            * @param companyId the primary key of the company
789            * @param name the resource's name, which can be either a class name or a
790            portlet ID
791            * @param scope the scope
792            * @param primKey the primary key
793            * @param roleId the primary key of the role
794            * @param actionIds the action IDs of the actions
795            * @throws PortalException if a role with the primary key or a resource
796            action with the name and action ID could not be found
797            * @throws SystemException if a system exception occurred
798            */
799            public void setResourcePermissions(long companyId, java.lang.String name,
800                    int scope, java.lang.String primKey, long roleId,
801                    java.lang.String[] actionIds)
802                    throws com.liferay.portal.kernel.exception.PortalException,
803                            com.liferay.portal.kernel.exception.SystemException;
804    
805            /**
806            * Updates the role's permissions at the scope, setting the actions that can
807            * be performed on resources of the type. Existing actions are replaced.
808            *
809            * <p>
810            * This method can be used to set permissions at any scope, but it is
811            * generally only used at the individual scope. For example, it could be
812            * used to set the guest permissions on a blog post.
813            * </p>
814            *
815            * <p>
816            * Depending on the scope, the value of <code>primKey</code> will have
817            * different meanings. For more information, see {@link
818            * com.liferay.portal.model.impl.ResourcePermissionImpl}.
819            * </p>
820            *
821            * @param companyId the primary key of the company
822            * @param name the resource's name, which can be either a class name or a
823            portlet ID
824            * @param scope the scope
825            * @param primKey the primary key
826            * @param roleIdsToActionIds a map of role IDs to action IDs of the actions
827            * @throws PortalException if a role with the primary key or a resource
828            action with the name and action ID could not be found
829            * @throws SystemException if a system exception occurred
830            */
831            public void setResourcePermissions(long companyId, java.lang.String name,
832                    int scope, java.lang.String primKey,
833                    java.util.Map<java.lang.Long, java.lang.String[]> roleIdsToActionIds)
834                    throws com.liferay.portal.kernel.exception.PortalException,
835                            com.liferay.portal.kernel.exception.SystemException;
836    }