From e8463ec48aaa77fc8a82627dfa4f8cca945b64b6 Mon Sep 17 00:00:00 2001 From: William Welling Date: Tue, 30 Jan 2024 16:38:27 -0600 Subject: [PATCH 1/3] Only index when anonymous resource policy start date is null --- .../main/java/org/dspace/discovery/FullTextContentStreams.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java index 8107607be2d..c7015eb804d 100644 --- a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java +++ b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java @@ -94,7 +94,7 @@ private void buildFullTextList(Item parentItem) throws SQLException { for (ResourcePolicy rp:bundlePolicies) { if (rp.getdSpaceObject().getID() == fulltextBitstream.getID()) { - if (rp.getGroup().getName().equalsIgnoreCase("anonymous")) { + if (rp.getGroup().getName().equalsIgnoreCase("anonymous") && rp.getStartDate() == null) { isIndexable = true; } break; From 742e26e560385bdf371c8a68d824ec316cd6d7c0 Mon Sep 17 00:00:00 2001 From: William Welling Date: Wed, 31 Jan 2024 03:44:03 -0600 Subject: [PATCH 2/3] Improve resource policy is indexable condition --- .../org/dspace/discovery/FullTextContentStreams.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java index c7015eb804d..2595da6bbb7 100644 --- a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java +++ b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java @@ -17,6 +17,8 @@ import java.nio.charset.StandardCharsets; import java.sql.SQLException; import java.util.ArrayList; +// TAMU Customization - Only index text bitstreams that are not restricted +import java.util.Date; import java.util.Enumeration; import java.util.Iterator; import java.util.List; @@ -26,6 +28,8 @@ import com.google.common.collect.Iterables; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +// TAMU Customization - Only index text bitstreams that are not restricted +import org.apache.commons.lang3.time.DateUtils; import org.apache.logging.log4j.Logger; import org.apache.solr.common.util.ContentStreamBase; import org.dspace.authorize.AuthorizeException; @@ -94,7 +98,13 @@ private void buildFullTextList(Item parentItem) throws SQLException { for (ResourcePolicy rp:bundlePolicies) { if (rp.getdSpaceObject().getID() == fulltextBitstream.getID()) { - if (rp.getGroup().getName().equalsIgnoreCase("anonymous") && rp.getStartDate() == null) { + Date start = rp.getStartDate(); + Date end = rp.getEndDate(); + Date now = new Date(); + if (rp.getGroup().getName().equalsIgnoreCase("anonymous") + && (start == null || ((start.before(now) || DateUtils.isSameDay(start, now)) + && (end == null || (now.after(end) || DateUtils.isSameDay(now, end))))) + ) { isIndexable = true; } break; From 3c92dfcbf42998e17683c2c82a6706a60bbb3c00 Mon Sep 17 00:00:00 2001 From: William Welling Date: Thu, 1 Feb 2024 11:21:36 -0600 Subject: [PATCH 3/3] Correct inverted comparison of resource policy end date and now --- .../main/java/org/dspace/discovery/FullTextContentStreams.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java index 2595da6bbb7..9260f1c0b45 100644 --- a/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java +++ b/dspace/modules/additions/src/main/java/org/dspace/discovery/FullTextContentStreams.java @@ -103,7 +103,7 @@ private void buildFullTextList(Item parentItem) throws SQLException { Date now = new Date(); if (rp.getGroup().getName().equalsIgnoreCase("anonymous") && (start == null || ((start.before(now) || DateUtils.isSameDay(start, now)) - && (end == null || (now.after(end) || DateUtils.isSameDay(now, end))))) + && (end == null || (end.after(now) || DateUtils.isSameDay(now, end))))) ) { isIndexable = true; }