From ebd15c66af18a1bdcdc7740f1c416bc2a8611034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20P=C3=A9teri?= Date: Thu, 29 Jun 2023 12:10:11 +0200 Subject: [PATCH] fix(core): Collect nested requests for permission checking... ...recursively in TransactionalRequest and SnomedBulkRequest --- .../snowowl/core/request/TransactionalRequest.java | 5 ++++- .../snomed/datastore/request/SnomedBulkRequest.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/com.b2international.snowowl.core/src/com/b2international/snowowl/core/request/TransactionalRequest.java b/core/com.b2international.snowowl.core/src/com/b2international/snowowl/core/request/TransactionalRequest.java index 4e7c758821f..c33a01f3000 100644 --- a/core/com.b2international.snowowl.core/src/com/b2international/snowowl/core/request/TransactionalRequest.java +++ b/core/com.b2international.snowowl.core/src/com/b2international/snowowl/core/request/TransactionalRequest.java @@ -105,7 +105,10 @@ private Object executeNext(TransactionContext context) { @JsonIgnore @Override public Collection> getNestedRequests() { - return ImmutableList.of(this, getNext()); + return ImmutableList.>builder() + .add(this) + .addAll(next.getNestedRequests()) + .build(); } /** diff --git a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedBulkRequest.java b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedBulkRequest.java index f542cddab1b..4894dac2519 100644 --- a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedBulkRequest.java +++ b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedBulkRequest.java @@ -128,5 +128,14 @@ private static void collectNestedRequests(Request root, ImmutableList.Buil }); } } - + + @Override + public Collection> getNestedRequests() { + // XXX: this method is primarily used for permission checking and so does not dig deeper into the nested request hierarchy + return ImmutableList.>builder() + .add(this) + .addAll(super.getNestedRequests()) + .build(); + + } }