From fe69463d7113f5f1b5e0b5ca3067948f5a4a7328 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Mon, 12 Aug 2024 21:47:46 -0400 Subject: [PATCH 1/2] FeatureFlags (for "skip non-explicit groups") --- .../java/edu/harvard/iq/dataverse/settings/FeatureFlags.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/harvard/iq/dataverse/settings/FeatureFlags.java b/src/main/java/edu/harvard/iq/dataverse/settings/FeatureFlags.java index 2e86fae610e..790b427eaf4 100644 --- a/src/main/java/edu/harvard/iq/dataverse/settings/FeatureFlags.java +++ b/src/main/java/edu/harvard/iq/dataverse/settings/FeatureFlags.java @@ -120,6 +120,7 @@ public enum FeatureFlags { * @since Dataverse 6.3 */ ADD_PUBLICOBJECT_SOLR_FIELD("add-publicobject-solr-field"), + SKIP_NONEXPLICIT_GROUPS("skip-nonexplicit-groups"), /** * With this flag set, Dataverse will index the actual origin of harvested * metadata records, instead of the "Harvested" string in all cases. From cc9e23f558128192371674e13b6f224f9a5ee957 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Fri, 28 Mar 2025 12:52:36 -0400 Subject: [PATCH 2/2] A local mod that skips non-explicit groups when the corresponding flag is defined. --- .../iq/dataverse/search/SolrSearchServiceBean.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/search/SolrSearchServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/search/SolrSearchServiceBean.java index 530d3f9ef7e..2fa3ded8c9b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/search/SolrSearchServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/search/SolrSearchServiceBean.java @@ -1048,7 +1048,14 @@ private String getPermissionFilterQuery(DataverseRequest dataverseRequest, SolrQ for (Group group : groups) { String groupAlias = group.getAlias(); if (groupAlias != null && !groupAlias.isEmpty() && (!avoidJoin || !groupAlias.startsWith("builtIn"))) { - groupList.add(IndexServiceBean.getGroupPrefix() + groupAlias); + boolean skipThisGroup = false; + if (FeatureFlags.SKIP_NONEXPLICIT_GROUPS.enabled() && group.getGroupProvider() != null && !"explicit".equals(group.getGroupProvider().getGroupProviderAlias())) { + skipThisGroup = true; + logger.info("Skipping non-explicit group " + groupAlias); + } + if (!skipThisGroup) { + groupList.add(IndexServiceBean.getGroupPrefix() + groupAlias); + } } }