Skip to content

Commit 08cbefc

Browse files
authored
Fix issue with canViewRecord when calling related api (geonetwork#7373)
* Switch getAndCheckMetadataId to getInternalId in recent canViewRecord changes as it supports both uuid and internal id. * Fix bug in getInternalId that failed if an id was passed.
1 parent 1943d69 commit 08cbefc

File tree

4 files changed

+7
-10
lines changed

4 files changed

+7
-10
lines changed

services/src/main/java/org/fao/geonet/api/ApiUtils.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323

2424
package org.fao.geonet.api;
2525

26-
import static org.fao.geonet.api.records.attachments.AbstractStore.getAndCheckMetadataId;
27-
2826
import com.google.common.collect.Sets;
2927
import jeeves.constants.Jeeves;
3028
import jeeves.server.UserSession;
@@ -115,7 +113,11 @@ public static String getInternalId(String uuidOrInternalId, Boolean approved)
115113
throws Exception {
116114

117115
IMetadataUtils metadataUtils = ApplicationContextHolder.get().getBean(IMetadataUtils.class);
118-
String id = String.valueOf(metadataUtils.findOneByUuid(uuidOrInternalId).getId());
116+
AbstractMetadata metadata = metadataUtils.findOneByUuid(uuidOrInternalId);
117+
String id = null;
118+
if (metadata != null) {
119+
id = String.valueOf(metadata.getId());
120+
}
119121

120122
if (StringUtils.isEmpty(id)) {
121123
//It wasn't a UUID
@@ -295,7 +297,7 @@ public static AbstractMetadata canViewRecord(String metadataUuid, boolean approv
295297
String metadataId;
296298
if (!approved) {
297299
// If the record is not approved then we need to get the id of the record.
298-
metadataId = String.valueOf(getAndCheckMetadataId(metadataUuid, approved));
300+
metadataId = getInternalId(metadataUuid, approved);
299301
} else {
300302
// Otherwise use the uuid or id that was supplied.
301303
metadataId = metadataUuid;

services/src/main/java/org/fao/geonet/api/records/MetadataApi.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
import java.util.stream.Stream;
7474

7575
import static org.fao.geonet.api.ApiParams.*;
76-
import static org.fao.geonet.api.records.attachments.AbstractStore.getAndCheckMetadataId;
76+
7777
import static org.fao.geonet.kernel.mef.MEFLib.Version.Constants.MEF_V1_ACCEPT_TYPE;
7878
import static org.fao.geonet.kernel.mef.MEFLib.Version.Constants.MEF_V2_ACCEPT_TYPE;
7979

services/src/main/java/org/fao/geonet/api/records/MetadataAssociatedApi.java

-3
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,8 @@
5252

5353
import javax.servlet.http.HttpServletRequest;
5454
import java.util.*;
55-
import java.util.stream.Collectors;
56-
import java.util.stream.Stream;
5755

5856
import static org.fao.geonet.api.ApiParams.*;
59-
import static org.fao.geonet.api.records.attachments.AbstractStore.getAndCheckMetadataId;
6057

6158
@RequestMapping(value = {
6259
"/{portal}/api/records"

services/src/main/java/org/fao/geonet/api/related/Related.java

-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@
5858
import java.util.Locale;
5959
import java.util.Map;
6060

61-
import static org.fao.geonet.api.records.attachments.AbstractStore.getAndCheckMetadataId;
62-
6361
@RequestMapping(value = {
6462
"/{portal}/api/related"
6563
})

0 commit comments

Comments
 (0)