Skip to content

Commit dae7da8

Browse files
authored
Update SetupPermissions.java (adding support for site roles) (#43)
* Update SetupPermissions.java (adding support for site roles)
1 parent 4e0f7fc commit dae7da8

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

src/main/java/com/ableneo/liferay/portal/setup/core/SetupPermissions.java

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
import com.liferay.portal.kernel.exception.SystemException;
1212
import com.liferay.portal.kernel.log.Log;
1313
import com.liferay.portal.kernel.log.LogFactoryUtil;
14-
import com.liferay.portal.kernel.model.Layout;
15-
import com.liferay.portal.kernel.model.Resource;
16-
import com.liferay.portal.kernel.model.ResourceConstants;
17-
import com.liferay.portal.kernel.model.ResourcePermission;
14+
import com.liferay.portal.kernel.model.*;
15+
import com.liferay.portal.kernel.model.role.RoleConstants;
1816
import com.liferay.portal.kernel.security.permission.ActionKeys;
1917
import com.liferay.portal.kernel.service.ResourceLocalServiceUtil;
2018
import com.liferay.portal.kernel.service.ResourcePermissionLocalServiceUtil;
@@ -43,29 +41,41 @@ public static void setupPortletPermissions(final ResourcePermissions resourcePer
4341
String roleName = actionsPerRoleEntry.getKey();
4442
try {
4543
long companyId = SetupConfigurationThreadLocal.getRunInCompanyId();
46-
long roleId = RoleLocalServiceUtil.getRole(companyId, roleName).getRoleId();
44+
com.liferay.portal.kernel.model.Role role = RoleLocalServiceUtil.getRole(companyId, roleName);
45+
long roleId = role.getRoleId();
4746
final Set<String> actionStrings = actionsPerRoleEntry.getValue();
4847
final String[] actionIds = actionStrings.toArray(new String[actionStrings.size()]);
4948

50-
/**
51-
* Individual permission is needed even though we set
52-
*/
53-
ResourcePermissionLocalServiceUtil.setResourcePermissions(
54-
companyId,
55-
resource.getResourceId(),
56-
ResourceConstants.SCOPE_INDIVIDUAL,
57-
String.valueOf(companyId),
58-
roleId,
59-
actionIds
60-
);
61-
ResourcePermissionLocalServiceUtil.setResourcePermissions(
62-
companyId,
63-
resource.getResourceId(),
64-
ResourceConstants.SCOPE_COMPANY,
65-
String.valueOf(companyId),
66-
roleId,
67-
actionIds
68-
);
49+
if (role.getType() == RoleConstants.TYPE_SITE || role.getType() == RoleConstants.TYPE_ORGANIZATION) {
50+
ResourcePermissionLocalServiceUtil.setResourcePermissions(
51+
companyId,
52+
resource.getResourceId(),
53+
ResourceConstants.SCOPE_GROUP_TEMPLATE,
54+
String.valueOf(companyId),
55+
roleId,
56+
actionIds
57+
);
58+
} else {
59+
/**
60+
* Individual permission is needed even though we set
61+
*/
62+
ResourcePermissionLocalServiceUtil.setResourcePermissions(
63+
companyId,
64+
resource.getResourceId(),
65+
ResourceConstants.SCOPE_INDIVIDUAL,
66+
String.valueOf(companyId),
67+
roleId,
68+
actionIds
69+
);
70+
ResourcePermissionLocalServiceUtil.setResourcePermissions(
71+
companyId,
72+
resource.getResourceId(),
73+
ResourceConstants.SCOPE_COMPANY,
74+
String.valueOf(companyId),
75+
roleId,
76+
actionIds
77+
);
78+
}
6979
LOG.info(String.format("Set permission for role: %1$s for action ids: %2$s", roleName, actionIds));
7080
} catch (NestableException e) {
7181
LOG.error(String.format("Could not set permission to resource :%1$s", resource.getResourceId()), e);

0 commit comments

Comments
 (0)