From c51302eaa5268c41fef6ca68e7ab5cc09d918b93 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Thu, 2 Jun 2022 16:19:22 +0300 Subject: [PATCH] Fix import of public dashboard --- .../sync/ie/importing/impl/CustomerImportService.java | 10 +++++++--- .../sync/vc/DefaultEntitiesVersionControlService.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/CustomerImportService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/CustomerImportService.java index 2b2e2d1ddd..1220262f7e 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/CustomerImportService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/CustomerImportService.java @@ -24,6 +24,7 @@ import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.sync.ie.EntityImportSettings; +import org.thingsboard.server.dao.customer.CustomerDao; import org.thingsboard.server.dao.customer.CustomerService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.security.model.SecurityUser; @@ -35,6 +36,7 @@ import org.thingsboard.server.common.data.sync.ie.EntityExportData; public class CustomerImportService extends BaseEntityImportService> { private final CustomerService customerService; + private final CustomerDao customerDao; @Override protected void setOwner(TenantId tenantId, Customer customer, IdProvider idProvider) { @@ -43,10 +45,12 @@ public class CustomerImportService extends BaseEntityImportService exportData, IdProvider idProvider, EntityImportSettings importSettings) { - if (customer.isPublic()) { - return customerService.findOrCreatePublicCustomer(tenantId); - } else { + if (!customer.isPublic()) { return customerService.saveCustomer(customer); + } else { + Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId); + publicCustomer.setExternalId(customer.getExternalId()); + return customerDao.save(tenantId, publicCustomer); } } diff --git a/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java b/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java index f8f8d9f35d..383df567ef 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java @@ -340,7 +340,7 @@ public class DefaultEntitiesVersionControlService implements EntitiesVersionCont DaoUtil.processInBatches(pageLink -> { return exportableEntitiesService.findEntitiesByTenantId(user.getTenantId(), entityType, pageLink); }, 100, entity -> { - if (!importedEntities.get(entityType).contains(entity.getId())) { + if (importedEntities.get(entityType) == null || !importedEntities.get(entityType).contains(entity.getId())) { try { exportableEntitiesService.checkPermission(user, entity, entityType, Operation.DELETE); } catch (ThingsboardException e) {