From b0652d89d1adc81a08878ea0067dc4aaeda99f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Knabel?= Date: Mon, 28 Oct 2024 08:21:25 +0100 Subject: [PATCH 1/3] Update SetupPermissions.java (adding support for site roles) --- .../portal/setup/core/SetupPermissions.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java index 40f8da4..2ded27c 100644 --- a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java +++ b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java @@ -11,10 +11,8 @@ import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; -import com.liferay.portal.kernel.model.Layout; -import com.liferay.portal.kernel.model.Resource; -import com.liferay.portal.kernel.model.ResourceConstants; -import com.liferay.portal.kernel.model.ResourcePermission; +import com.liferay.portal.kernel.model.*; +import com.liferay.portal.kernel.model.role.RoleConstants; import com.liferay.portal.kernel.security.permission.ActionKeys; import com.liferay.portal.kernel.service.ResourceLocalServiceUtil; import com.liferay.portal.kernel.service.ResourcePermissionLocalServiceUtil; @@ -43,7 +41,8 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer String roleName = actionsPerRoleEntry.getKey(); try { long companyId = SetupConfigurationThreadLocal.getRunInCompanyId(); - long roleId = RoleLocalServiceUtil.getRole(companyId, roleName).getRoleId(); + Role role = RoleLocalServiceUtil.getRole(companyId, roleName); + long roleId = role.getRoleId(); final Set actionStrings = actionsPerRoleEntry.getValue(); final String[] actionIds = actionStrings.toArray(new String[actionStrings.size()]); @@ -66,6 +65,16 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer roleId, actionIds ); + if (role.getType() == RoleConstants.TYPE_SITE) { + ResourcePermissionLocalServiceUtil.setResourcePermissions( + companyId, + resource.getResourceId(), + ResourceConstants.SCOPE_GROUP_TEMPLATE, + String.valueOf(companyId), + roleId, + actionIds + ); + } LOG.info(String.format("Set permission for role: %1$s for action ids: %2$s", roleName, actionIds)); } catch (NestableException e) { LOG.error(String.format("Could not set permission to resource :%1$s", resource.getResourceId()), e); From 70c193e38dc9b861f8245b0da39673a3ebacea65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Knabel?= Date: Mon, 28 Oct 2024 08:27:49 +0100 Subject: [PATCH 2/3] Update SetupPermissions.java --- .../com/ableneo/liferay/portal/setup/core/SetupPermissions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java index 2ded27c..6c1e622 100644 --- a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java +++ b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java @@ -41,7 +41,7 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer String roleName = actionsPerRoleEntry.getKey(); try { long companyId = SetupConfigurationThreadLocal.getRunInCompanyId(); - Role role = RoleLocalServiceUtil.getRole(companyId, roleName); + com.liferay.portal.kernel.model.Role role = RoleLocalServiceUtil.getRole(companyId, roleName); long roleId = role.getRoleId(); final Set actionStrings = actionsPerRoleEntry.getValue(); final String[] actionIds = actionStrings.toArray(new String[actionStrings.size()]); From 7b6d3ba718e39987716581e09f27a47bc4143d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Knabel?= Date: Mon, 28 Oct 2024 08:33:55 +0100 Subject: [PATCH 3/3] Update SetupPermissions.java --- .../portal/setup/core/SetupPermissions.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java index 6c1e622..1acefc5 100644 --- a/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java +++ b/src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java @@ -46,26 +46,7 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer final Set actionStrings = actionsPerRoleEntry.getValue(); final String[] actionIds = actionStrings.toArray(new String[actionStrings.size()]); - /** - * Individual permission is needed even though we set - */ - ResourcePermissionLocalServiceUtil.setResourcePermissions( - companyId, - resource.getResourceId(), - ResourceConstants.SCOPE_INDIVIDUAL, - String.valueOf(companyId), - roleId, - actionIds - ); - ResourcePermissionLocalServiceUtil.setResourcePermissions( - companyId, - resource.getResourceId(), - ResourceConstants.SCOPE_COMPANY, - String.valueOf(companyId), - roleId, - actionIds - ); - if (role.getType() == RoleConstants.TYPE_SITE) { + if (role.getType() == RoleConstants.TYPE_SITE || role.getType() == RoleConstants.TYPE_ORGANIZATION) { ResourcePermissionLocalServiceUtil.setResourcePermissions( companyId, resource.getResourceId(), @@ -74,6 +55,26 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer roleId, actionIds ); + } else { + /** + * Individual permission is needed even though we set + */ + ResourcePermissionLocalServiceUtil.setResourcePermissions( + companyId, + resource.getResourceId(), + ResourceConstants.SCOPE_INDIVIDUAL, + String.valueOf(companyId), + roleId, + actionIds + ); + ResourcePermissionLocalServiceUtil.setResourcePermissions( + companyId, + resource.getResourceId(), + ResourceConstants.SCOPE_COMPANY, + String.valueOf(companyId), + roleId, + actionIds + ); } LOG.info(String.format("Set permission for role: %1$s for action ids: %2$s", roleName, actionIds)); } catch (NestableException e) {