protected void deletePermissions_6(long companyId) throws Exception { Group group = GroupLocalServiceUtil.getGroup(companyId, GroupConstants.CONTROL_PANEL); long plid = LayoutLocalServiceUtil.getDefaultPlid(group.getGroupId(), true); Role role = RoleLocalServiceUtil.getRole(companyId, RoleConstants.GUEST); List<ResourcePermission> resourcePermissions = ResourcePermissionLocalServiceUtil.getRoleResourcePermissions(role.getRoleId()); for (ResourcePermission resourcePermission : resourcePermissions) { if (isControlPanelLayout(plid, resourcePermission.getPrimKey()) || isPrivateLayout(resourcePermission.getName(), resourcePermission.getPrimKey())) { ResourcePermissionLocalServiceUtil.deleteResourcePermission( resourcePermission.getResourcePermissionId()); } } }
@Test public void testUpdateExisting() throws Exception { long pk = ServiceTestUtil.nextLong(); ResourcePermission newResourcePermission = _persistence.create(pk); newResourcePermission.setCompanyId(ServiceTestUtil.nextLong()); newResourcePermission.setName(ServiceTestUtil.randomString()); newResourcePermission.setScope(ServiceTestUtil.nextInt()); newResourcePermission.setPrimKey(ServiceTestUtil.randomString()); newResourcePermission.setRoleId(ServiceTestUtil.nextLong()); newResourcePermission.setOwnerId(ServiceTestUtil.nextLong()); newResourcePermission.setActionIds(ServiceTestUtil.nextLong()); _persistence.update(newResourcePermission, false); ResourcePermission existingResourcePermission = _persistence.findByPrimaryKey(newResourcePermission.getPrimaryKey()); Assert.assertEquals( existingResourcePermission.getResourcePermissionId(), newResourcePermission.getResourcePermissionId()); Assert.assertEquals( existingResourcePermission.getCompanyId(), newResourcePermission.getCompanyId()); Assert.assertEquals(existingResourcePermission.getName(), newResourcePermission.getName()); Assert.assertEquals(existingResourcePermission.getScope(), newResourcePermission.getScope()); Assert.assertEquals( existingResourcePermission.getPrimKey(), newResourcePermission.getPrimKey()); Assert.assertEquals(existingResourcePermission.getRoleId(), newResourcePermission.getRoleId()); Assert.assertEquals( existingResourcePermission.getOwnerId(), newResourcePermission.getOwnerId()); Assert.assertEquals( existingResourcePermission.getActionIds(), newResourcePermission.getActionIds()); }
protected void deleteRolePermissions(PortletDataContext portletDataContext, Role importedRole) throws SystemException { List<ResourcePermission> resourcePermissions = ResourcePermissionLocalServiceUtil.getRoleResourcePermissions( importedRole.getRoleId(), new int[] {ResourceConstants.SCOPE_COMPANY, ResourceConstants.SCOPE_GROUP_TEMPLATE}, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (ResourcePermission resourcePermission : resourcePermissions) { ResourcePermissionLocalServiceUtil.deleteResourcePermission(resourcePermission); } List<ResourcePermission> groupResourcePermissions = ResourcePermissionLocalServiceUtil.getRoleResourcePermissions( importedRole.getRoleId(), new int[] {ResourceConstants.SCOPE_GROUP}, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (ResourcePermission groupResourcePermission : groupResourcePermissions) { long groupId = GetterUtil.getLong(groupResourcePermission.getPrimKey()); if ((groupId == portletDataContext.getCompanyGroupId()) || (groupId == portletDataContext.getUserPersonalSiteGroupId())) { ResourcePermissionLocalServiceUtil.deleteResourcePermission(groupResourcePermission); } } List<ResourceTypePermission> resourceTypePermissions = getResourceTypePermissions(portletDataContext, importedRole); for (ResourceTypePermission resourceTypePermission : resourceTypePermissions) { ResourceTypePermissionLocalServiceUtil.deleteResourceTypePermission(resourceTypePermission); } }
protected void fixOrganizationRolePermissions() throws Exception { DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(ResourcePermission.class); dynamicQuery.add(RestrictionsFactoryUtil.eq("name", Organization.class.getName())); List<ResourcePermission> resourcePermissions = ResourcePermissionLocalServiceUtil.dynamicQuery(dynamicQuery); for (ResourcePermission resourcePermission : resourcePermissions) { ResourcePermission groupResourcePermission = null; try { groupResourcePermission = ResourcePermissionLocalServiceUtil.getResourcePermission( resourcePermission.getCompanyId(), Group.class.getName(), resourcePermission.getScope(), resourcePermission.getPrimKey(), resourcePermission.getRoleId()); } catch (Exception e) { ResourcePermissionLocalServiceUtil.setResourcePermissions( resourcePermission.getCompanyId(), Group.class.getName(), resourcePermission.getScope(), resourcePermission.getPrimKey(), resourcePermission.getRoleId(), ResourcePermissionLocalServiceImpl.EMPTY_ACTION_IDS); groupResourcePermission = ResourcePermissionLocalServiceUtil.getResourcePermission( resourcePermission.getCompanyId(), Group.class.getName(), resourcePermission.getScope(), resourcePermission.getPrimKey(), resourcePermission.getRoleId()); } long organizationActions = resourcePermission.getActionIds(); long groupActions = groupResourcePermission.getActionIds(); for (Object[] actionIdToMask : _ORGANIZATION_ACTION_IDS_TO_MASKS) { long organizationActionMask = (Long) actionIdToMask[1]; long groupActionMask = (Long) actionIdToMask[2]; if ((organizationActions & organizationActionMask) == organizationActionMask) { organizationActions = organizationActions & (~organizationActionMask); groupActions = groupActions | groupActionMask; } } try { resourcePermission.resetOriginalValues(); resourcePermission.setActionIds(organizationActions); ResourcePermissionLocalServiceUtil.updateResourcePermission(resourcePermission); groupResourcePermission.resetOriginalValues(); groupResourcePermission.setActionIds(groupActions); ResourcePermissionLocalServiceUtil.updateResourcePermission(groupResourcePermission); } catch (Exception e) { _log.error(e, e); } } PermissionCacheUtil.clearCache(); }