Skip to content

Commit c0d0fa5

Browse files
committed
cache canSeeCurationStatus perm check, render only for draft
1 parent fb51a6e commit c0d0fa5

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/main/java/edu/harvard/iq/dataverse/search/SearchIncludeFragment.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,13 +1547,18 @@ public boolean isValid(SolrSearchResult result) {
15471547
});
15481548
}
15491549

1550+
private Map<Long, Boolean> seesStatus = new HashMap<>();
1551+
15501552
public boolean canSeeCurationStatus(Long datasetId) {
1551-
boolean creatorsCanSeeStatus = JvmSettings.UI_SHOW_CURATION_STATUS_TO_ALL.lookupOptional(Boolean.class).orElse(false);
1552-
if (creatorsCanSeeStatus) {
1553-
return permissionsWrapper.canViewUnpublishedDataset(getDataverseRequest(),(Dataset) dvObjectService.findDvObject(datasetId));
1554-
} else {
1555-
return canPublishDataset(datasetId);
1553+
if (!seesStatus.containsKey(datasetId)) {
1554+
boolean creatorsCanSeeStatus = JvmSettings.UI_SHOW_CURATION_STATUS_TO_ALL.lookupOptional(Boolean.class).orElse(false);
1555+
if (creatorsCanSeeStatus) {
1556+
seesStatus.put(datasetId, permissionsWrapper.canViewUnpublishedDataset(getDataverseRequest(), (Dataset) dvObjectService.findDvObject(datasetId)));
1557+
} else {
1558+
seesStatus.put(datasetId, canPublishDataset(datasetId));
1559+
}
15561560
}
1561+
return seesStatus.get(datasetId);
15571562
}
15581563

15591564
public enum SortOrder {

src/main/webapp/search-include-fragment.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@
583583
<h:outputText value="#{bundle['dataset.versionUI.deaccessioned']}" styleClass="label label-danger" rendered="#{result.deaccessionedState}"/>
584584
<h:outputText value="#{bundle['embargoed']}" styleClass="label label-primary" rendered="#{SearchIncludeFragment.isActivelyEmbargoed(result)}"/>
585585
<h:outputText value="#{bundle['retentionExpired']}" styleClass="label label-warning" rendered="#{SearchIncludeFragment.isRetentionExpired(result)}"/>
586-
<h:outputText value="#{DatasetUtil:getLocaleCurationStatusLabelFromString(result.curationStatus)}" styleClass="label curation-status" rendered="#{SearchIncludeFragment.canSeeCurationStatus(result.entityId)}"/>
586+
<h:outputText value="#{DatasetUtil:getLocaleCurationStatusLabelFromString(result.curationStatus)}" styleClass="label curation-status" rendered="#{result.draftState and SearchIncludeFragment.canSeeCurationStatus(result.entityId)}"/>
587587
<h:outputText value="#{result.userRole}" styleClass="label label-primary" rendered="#{!empty result.userRole}"/>
588588
<h:outputText value="#{bundle['incomplete']}" styleClass="label label-danger" rendered="#{!result.harvested and !SearchIncludeFragment.isValid(result)}"/>
589589
</div>

0 commit comments

Comments
 (0)