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]));
    }
  }