diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/ce/TenantConfigurationCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/ce/TenantConfigurationCE.java index a43f4c1d24..065381e193 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/ce/TenantConfigurationCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/ce/TenantConfigurationCE.java @@ -67,6 +67,9 @@ public class TenantConfigurationCE { instanceName = ObjectUtils.defaultIfNull(tenantConfiguration.getInstanceName(), instanceName); emailVerificationEnabled = ObjectUtils.defaultIfNull(tenantConfiguration.getEmailVerificationEnabled(), emailVerificationEnabled); + + featuresWithPendingMigration = tenantConfiguration.getFeaturesWithPendingMigration(); + migrationStatus = tenantConfiguration.getMigrationStatus(); } public Boolean getEmailVerificationEnabled() { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepository.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepository.java index 2757f2bc81..646067fad9 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepository.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepository.java @@ -13,6 +13,14 @@ import java.util.Map; @NoRepositoryBean public interface BaseRepository extends ReactiveMongoRepository { + /** + * This function should be used to get an object from the DB without applying any ACL rules + * + * @param id The identifier for this type + * @return Mono + */ + Mono retrieveById(ID id); + /** * This function sets the deleted flag to true and then saves the modified document. * diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepositoryImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepositoryImpl.java index a4090d8f70..4f4cefc1d6 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepositoryImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/BaseRepositoryImpl.java @@ -121,6 +121,18 @@ public class BaseRepositoryImpl }); } + @Override + public Mono retrieveById(ID id) { + Query query = new Query(getIdCriteria(id)); + query.addCriteria(notDeleted()); + + return mongoOperations + .query(entityInformation.getJavaType()) + .inCollection(entityInformation.getCollectionName()) + .matching(query) + .one(); + } + @Override public Mono findById(ID id) { return this.findByIdAndFieldNames(id, null); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java index 109f73fe1d..eea73eded1 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java @@ -203,8 +203,7 @@ public class TenantServiceCEImpl extends BaseService checkAndExecuteMigrationsForTenantFeatureFlags(Tenant tenant) { - if (tenant.getTenantConfiguration() == null - || CollectionUtils.isNullOrEmpty(tenant.getTenantConfiguration().getFeaturesWithPendingMigration())) { + if (!isMigrationRequired(tenant)) { return Mono.just(tenant); } Map featureMigrationTypeMap = @@ -222,10 +221,25 @@ public class TenantServiceCEImpl extends BaseService resultMono = tenantService.checkAndExecuteMigrationsForTenantFeatureFlags(tenant); StepVerifier.create(resultMono) .assertNext(tenant1 -> { - assertThat(tenant1).isEqualTo(tenant); assertThat(tenant1.getTenantConfiguration().getFeaturesWithPendingMigration()) .isEmpty(); assertThat(tenant1.getTenantConfiguration().getMigrationStatus())