Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions src/main/java/edu/harvard/iq/dataverse/IndexServiceBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public class IndexServiceBean {
private static final String PUBLISHED_STRING = "Published";
private static final String UNPUBLISHED_STRING = "Unpublished";
private static final String DRAFT_STRING = "Draft";
private Dataverse rootDataverseCached;

public String indexAll() {
/**
Expand Down Expand Up @@ -118,7 +119,7 @@ public String indexAll() {
}

public String indexDataverse(Dataverse dataverse) {
Dataverse rootDataverse = dataverseService.findRootDataverse();
Dataverse rootDataverse = findRootDataverseCached();
if (dataverse.getId() == rootDataverse.getId()) {
/**
* @todo: replace hard-coded groups with real groups
Expand Down Expand Up @@ -843,7 +844,8 @@ public String indexUser(DataverseUser user) {
}

public List<String> findPathSegments(Dataverse dataverse, List<String> segments) {
if (!dataverseService.findRootDataverse().equals(dataverse)) {
Dataverse rootDataverse = findRootDataverseCached();
if (!dataverse.equals(rootDataverse)) {
// important when creating root dataverse
if (dataverse.getOwner() != null) {
findPathSegments(dataverse.getOwner(), segments);
Expand Down Expand Up @@ -996,4 +998,17 @@ private List<String> findSolrDocIdsForDraftFilesToDelete(Dataset datasetWithDraf
return solrIdsOfFilesToDelete;
}

private Dataverse findRootDataverseCached() {
if (rootDataverseCached != null) {
return rootDataverseCached;
} else {
rootDataverseCached = dataverseService.findRootDataverse();
if (rootDataverseCached != null) {
return rootDataverseCached;
} else {
throw new RuntimeException("unable to determine root dataverse");
}
}
}

}
8 changes: 4 additions & 4 deletions src/main/webapp/search-include-fragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
</ui:fragment>

<ui:fragment rendered="#{permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDataverseCommand')
or permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDatasetCommand') }">
or permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDatasetCommand')}">
<h:form id="shareForm">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Expand Down Expand Up @@ -227,11 +227,11 @@
<!--THIS IS EMPTY / BROWSE / GUEST-->
<p>This Dataverse currently has no Dataverses, Datasets, or Files. Please <h:outputLink value="/loginpage.xhtml">log in</h:outputLink> to see if you are able to add to it.</p>
</ui:fragment>
<ui:fragment rendered="#{!dataverseSession.user.guest and !SearchIncludeFragment.allowedToClickAddData and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
<ui:fragment rendered="#{!dataverseSession.user.guest and !(permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDataverseCommand') or permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDatasetCommand')) and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
<!--THIS IS EMPTY / BROWSE / LOGGED IN / NO PERMS-->
<p>This Dataverse contains restricted Datasets you are not able to access.</p>
<p>This Dataverse currently has no Dataverses, Datasets, or Files. You can contact the Dataverse administrator to gain access.</p>
</ui:fragment>
<ui:fragment rendered="#{!dataverseSession.user.guest and SearchIncludeFragment.allowedToClickAddData and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
<ui:fragment rendered="#{!dataverseSession.user.guest and (permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDataverseCommand') or permissionServiceBean.on(SearchIncludeFragment.dataverse).canIssueCommand('CreateDatasetCommand')) and SearchIncludeFragment.mode == SearchIncludeFragment.browseModeString}">
<!--THIS IS EMPTY / BROWSE / LOGGED IN / PERMS-->
<p>This Dataverse currently has no Dataverses, Datasets, or Files. You can add to it by using the Add Data button on this page.</p>
</ui:fragment>
Expand Down