protected void initPermissions( long companyId, long powerUserRoleId, String rootPortletId, long userPersonalSiteGroupId) throws PortalException { String primaryKey = String.valueOf(userPersonalSiteGroupId); if (_resourcePermissionLocalService.getResourcePermissionsCount( companyId, rootPortletId, ResourceConstants.SCOPE_GROUP, primaryKey) == 0) { List<String> portletActionIds = ResourceActionsUtil.getPortletResourceActions(rootPortletId); _resourcePermissionLocalService.setResourcePermissions( companyId, rootPortletId, ResourceConstants.SCOPE_GROUP, String.valueOf(userPersonalSiteGroupId), powerUserRoleId, portletActionIds.toArray(new String[0])); } String modelName = ResourceActionsUtil.getPortletRootModelResource(rootPortletId); if (Validator.isBlank(modelName)) { return; } if (_resourcePermissionLocalService.getResourcePermissionsCount( companyId, modelName, ResourceConstants.SCOPE_GROUP, primaryKey) == 0) { List<String> modelActionIds = ResourceActionsUtil.getModelResourceActions(modelName); _resourcePermissionLocalService.setResourcePermissions( companyId, modelName, ResourceConstants.SCOPE_GROUP, String.valueOf(userPersonalSiteGroupId), powerUserRoleId, modelActionIds.toArray(new String[0])); } }
protected void readResourceActions(ClassLoader classLoader) { Configuration configuration = null; try { configuration = ConfigurationFactoryUtil.getConfiguration(classLoader, "portlet"); } catch (Exception e) { if (_log.isDebugEnabled()) { _log.debug("Unable to read portlet.properties"); } return; } String[] resourceActionsConfigs = StringUtil.split(configuration.get(PropsKeys.RESOURCE_ACTIONS_CONFIGS)); for (String resourceActionsConfig : resourceActionsConfigs) { try { ResourceActionsUtil.read(null, classLoader, resourceActionsConfig); } catch (Exception e) { _log.error("Unable to read resource actions config in " + resourceActionsConfig, e); } } String[] portletIds = StringUtil.split(configuration.get("service.configurator.portlet.ids")); for (String portletId : portletIds) { List<String> modelNames = ResourceActionsUtil.getPortletModelResources(portletId); for (String modelName : modelNames) { List<String> modelActions = ResourceActionsUtil.getModelResourceActions(modelName); ResourceActionLocalServiceUtil.checkResourceActions(modelName, modelActions); } } }
public static String getTemplateModelResourceName(long resourceClassNameId) throws PortalException { ServiceWrapper<DDMTemplatePermissionSupport> templatePermissionSupportServiceWrapper = _ddmPermissionSupportTracker.getDDMTemplatePermissionSupportServiceWrapper( resourceClassNameId); Map<String, Object> properties = templatePermissionSupportServiceWrapper.getProperties(); boolean defaultModelResourceName = MapUtil.getBoolean(properties, "default.model.resource.name"); if (defaultModelResourceName) { return DDMTemplate.class.getName(); } StringBundler sb = new StringBundler(3); sb.append(PortalUtil.getClassName(resourceClassNameId)); sb.append(ResourceActionsUtil.getCompositeModelNameSeparator()); sb.append(DDMTemplate.class.getName()); return sb.toString(); }
public static void propagatePermissions( long companyId, long groupId, long parentMessageId, ServiceContext serviceContext) throws PortalException { MBMessage parentMessage = MBMessageLocalServiceUtil.getMBMessage(parentMessageId); Role defaultGroupRole = RoleLocalServiceUtil.getDefaultGroupRole(groupId); Role guestRole = RoleLocalServiceUtil.getRole(companyId, RoleConstants.GUEST); List<String> actionIds = ResourceActionsUtil.getModelResourceActions(MBMessage.class.getName()); Map<Long, Set<String>> roleIdsToActionIds = ResourcePermissionLocalServiceUtil.getAvailableResourcePermissionActionIds( companyId, MBMessage.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, String.valueOf(parentMessage.getMessageId()), actionIds); Set<String> defaultGroupActionIds = roleIdsToActionIds.get(defaultGroupRole.getRoleId()); if (defaultGroupActionIds == null) { serviceContext.setGroupPermissions(new String[0]); } else { serviceContext.setGroupPermissions( defaultGroupActionIds.toArray(new String[defaultGroupActionIds.size()])); } Set<String> guestActionIds = roleIdsToActionIds.get(guestRole.getRoleId()); if (guestActionIds == null) { serviceContext.setGuestPermissions(new String[0]); } else { serviceContext.setGuestPermissions(guestActionIds.toArray(new String[guestActionIds.size()])); } }