001
014
015 package com.liferay.portal.util;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.model.Resource;
020 import com.liferay.portal.model.ResourceBlock;
021 import com.liferay.portal.model.ResourceConstants;
022 import com.liferay.portal.model.Role;
023 import com.liferay.portal.model.RoleConstants;
024 import com.liferay.portal.service.ResourceBlockLocalServiceUtil;
025 import com.liferay.portal.service.ResourcePermissionLocalServiceUtil;
026
027 import java.util.List;
028
029
033 public class ResourcePermissionUtil {
034
035 public static void populateResourcePermissionActionIds(
036 long groupId, Role role, Resource resource, List<String> actions,
037 List<String> individualActions, List<String> groupActions,
038 List<String> groupTemplateActions, List<String> companyActions)
039 throws PortalException, SystemException {
040
041 if (ResourceBlockLocalServiceUtil.isSupported(resource.getName())) {
042 ResourceBlock resourceBlock =
043 ResourceBlockLocalServiceUtil.getResourceBlock(
044 resource.getName(), Long.valueOf(resource.getPrimKey()));
045
046
047
048
049 individualActions.addAll(
050 ResourceBlockLocalServiceUtil.getPermissions(
051 resourceBlock, role.getRoleId()));
052 groupActions.addAll(
053 ResourceBlockLocalServiceUtil.getGroupScopePermissions(
054 resourceBlock, role.getRoleId()));
055
056
057
058
059
060 if (role.getType() == RoleConstants.TYPE_REGULAR) {
061 companyActions.addAll(
062 ResourceBlockLocalServiceUtil.getCompanyScopePermissions(
063 resourceBlock, role.getRoleId()));
064 }
065 else {
066 groupTemplateActions.addAll(
067 ResourceBlockLocalServiceUtil.getCompanyScopePermissions(
068 resourceBlock, role.getRoleId()));
069 }
070 }
071 else {
072 individualActions.addAll(
073 ResourcePermissionLocalServiceUtil.
074 getAvailableResourcePermissionActionIds(
075 resource.getCompanyId(), resource.getName(),
076 resource.getScope(), resource.getPrimKey(),
077 role.getRoleId(), actions));
078
079 groupActions.addAll(
080 ResourcePermissionLocalServiceUtil.
081 getAvailableResourcePermissionActionIds(
082 resource.getCompanyId(), resource.getName(),
083 ResourceConstants.SCOPE_GROUP, String.valueOf(groupId),
084 role.getRoleId(), actions));
085
086 groupTemplateActions.addAll(
087 ResourcePermissionLocalServiceUtil.
088 getAvailableResourcePermissionActionIds(
089 resource.getCompanyId(), resource.getName(),
090 ResourceConstants.SCOPE_GROUP_TEMPLATE, "0",
091 role.getRoleId(), actions));
092
093 companyActions.addAll(
094 ResourcePermissionLocalServiceUtil.
095 getAvailableResourcePermissionActionIds(
096 resource.getCompanyId(), resource.getName(),
097 ResourceConstants.SCOPE_COMPANY,
098 String.valueOf(resource.getCompanyId()),
099 role.getRoleId(), actions));
100 }
101 }
102
103 }