diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/OrganizationServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/OrganizationServiceCEImpl.java index 7101f880b688..e71b23553868 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/OrganizationServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/OrganizationServiceCEImpl.java @@ -29,6 +29,8 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import static com.appsmith.external.constants.spans.OrganizationSpan.FETCH_DEFAULT_ORGANIZATION_SPAN; @@ -116,6 +118,11 @@ public Mono updateOrganizationConfiguration( .flatMap(tuple2 -> { Organization organization = tuple2.getT2(); OrganizationConfiguration oldConfig = tuple2.getT1(); + List> sideEffectsMonos = + calculateOrganizationConfigurationUpdateSideEffects(oldConfig, organizationConfiguration); + + Mono> allSideEffectsMono = + Flux.fromIterable(sideEffectsMonos).flatMap(x -> x).collectList(); AppsmithBeanUtils.copyNestedNonNullProperties(organizationConfiguration, oldConfig); organization.setOrganizationConfiguration(oldConfig); Mono updatedOrganizationMono = repository @@ -126,10 +133,16 @@ public Mono updateOrganizationConfiguration( // hence it will not be evaluated again return updatedOrganizationMono .then(Mono.defer(() -> evictOrganizationCache)) + .then(Mono.defer(() -> allSideEffectsMono)) .then(updatedOrganizationMono); }); } + protected List> calculateOrganizationConfigurationUpdateSideEffects( + OrganizationConfiguration oldConfig, OrganizationConfiguration organizationConfiguration) { + return new ArrayList<>(); + } + @Override public Mono findById(String organizationId, AclPermission permission) { return repository @@ -243,6 +256,7 @@ protected Mono getClientPertinentOrganization( // Only copy the values that are pertinent to the client organizationConfiguration.copyNonSensitiveValues(dbOrganization.getOrganizationConfiguration()); + clientOrganization.setId(dbOrganization.getId()); clientOrganization.setUserPermissions(dbOrganization.getUserPermissions()); return Mono.just(clientOrganization);