001
014
015 package com.liferay.portal.kernel.test.util;
016
017 import com.liferay.counter.service.CounterLocalServiceUtil;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.util.ArrayUtil;
020 import com.liferay.portal.kernel.util.ListUtil;
021 import com.liferay.portal.model.ResourceBlockPermission;
022 import com.liferay.portal.model.Role;
023 import com.liferay.portal.model.RoleConstants;
024 import com.liferay.portal.security.permission.ResourceActionsUtil;
025 import com.liferay.portal.service.ResourceBlockLocalServiceUtil;
026 import com.liferay.portal.service.ResourceBlockPermissionLocalServiceUtil;
027 import com.liferay.portal.service.RoleLocalServiceUtil;
028
029 import java.util.HashMap;
030 import java.util.List;
031 import java.util.Map;
032
033
036 public class ResourceBlockPermissionTestUtil {
037
038 public static ResourceBlockPermission addResourceBlockPermission(
039 long resourceBlockId, long roleId, long actionIds)
040 throws Exception {
041
042 long resourceBlockPermissionId = CounterLocalServiceUtil.increment(
043 ResourceBlockPermission.class.getName());
044
045 ResourceBlockPermission resourceBlockPermission =
046 ResourceBlockPermissionLocalServiceUtil.
047 createResourceBlockPermission(resourceBlockPermissionId);
048
049 resourceBlockPermission.setResourceBlockId(resourceBlockId);
050 resourceBlockPermission.setRoleId(roleId);
051 resourceBlockPermission.setActionIds(actionIds);
052
053 return ResourceBlockPermissionLocalServiceUtil.
054 addResourceBlockPermission(resourceBlockPermission);
055 }
056
057 public static void removeResourceBlockPermissions(
058 long companyId, long groupId, String portletResource,
059 String resourceName, long classPK, String[] roleNames,
060 List<String> actionIds)
061 throws PortalException {
062
063 List<String> resourceActionsIds =
064 ResourceActionsUtil.getResourceActions(
065 portletResource, resourceName);
066
067 Map<Long, String[]> roleIdsToActionIds = new HashMap<>();
068
069 for (String roleName : roleNames) {
070 Role role = RoleLocalServiceUtil.getRole(companyId, roleName);
071
072 List<String> roleActionIds = ListUtil.copy(resourceActionsIds);
073
074 if (roleName.equals(RoleConstants.GUEST)) {
075 List<String> unsupportedActionIds =
076 ResourceActionsUtil.getResourceGuestUnsupportedActions(
077 portletResource, resourceName);
078
079 roleActionIds.removeAll(unsupportedActionIds);
080 }
081
082 roleActionIds.removeAll(actionIds);
083
084 roleIdsToActionIds.put(
085 role.getRoleId(), ArrayUtil.toStringArray(roleActionIds));
086 }
087
088 ResourceBlockLocalServiceUtil.setIndividualScopePermissions(
089 companyId, groupId, resourceName, classPK, roleIdsToActionIds);
090 }
091
092 }