Browse Source

Relations import: log entity action

pull/6357/head
Viacheslav Klimov 5 years ago
parent
commit
a5cdbca690
  1. 24
      application/src/main/java/org/thingsboard/server/service/sync/importing/impl/BaseEntityImportService.java

24
application/src/main/java/org/thingsboard/server/service/sync/importing/impl/BaseEntityImportService.java

@ -91,11 +91,16 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
protected abstract E prepareAndSave(TenantId tenantId, E entity, D exportData, IdProvider idProvider);
protected void processAfterSaved(SecurityUser user, EntityImportResult<E> importResult, D exportData,
IdProvider idProvider, EntityImportSettings importSettings) throws ThingsboardException {
E savedEntity = importResult.getSavedEntity();
E oldEntity = importResult.getOldEntity();
importResult.addSendEventsCallback(() -> {
onEntitySaved(user, savedEntity, oldEntity);
});
importResult.addSaveReferencesCallback(() -> {
List<EntityRelation> newRelations = new LinkedList<>();
@ -107,7 +112,7 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
if (importSettings.isRemoveExistingRelations() && oldEntity != null) {
for (EntityRelation existingRelation : relationService.findByTo(user.getTenantId(), savedEntity.getId(), RelationTypeGroup.COMMON)) {
exportableEntitiesService.checkPermission(user, existingRelation.getFrom(), Operation.WRITE);
relationService.deleteRelation(user.getTenantId(), existingRelation);
deleteRelation(user, existingRelation, importResult);
}
}
}
@ -119,7 +124,7 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
if (importSettings.isRemoveExistingRelations() && oldEntity != null) {
for (EntityRelation existingRelation : relationService.findByFrom(user.getTenantId(), savedEntity.getId(), RelationTypeGroup.COMMON)) {
exportableEntitiesService.checkPermission(user, existingRelation.getTo(), Operation.WRITE);
relationService.deleteRelation(user.getTenantId(), existingRelation);
deleteRelation(user, existingRelation, importResult);
}
}
}
@ -139,14 +144,27 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
}
relationService.saveRelation(user.getTenantId(), relation);
importResult.addSendEventsCallback(() -> {
entityActionService.logEntityAction(user, relation.getFrom(), null, null,
ActionType.RELATION_ADD_OR_UPDATE, null, relation);
entityActionService.logEntityAction(user, relation.getTo(), null, null,
ActionType.RELATION_ADD_OR_UPDATE, null, relation);
});
}
});
}
private void deleteRelation(SecurityUser user, EntityRelation relation, EntityImportResult<E> importResult) {
relationService.deleteRelation(user.getTenantId(), relation);
importResult.addSendEventsCallback(() -> {
onEntitySaved(user, savedEntity, oldEntity);
entityActionService.logEntityAction(user, relation.getFrom(), null, null,
ActionType.RELATION_DELETED, null, relation);
entityActionService.logEntityAction(user, relation.getTo(), null, null,
ActionType.RELATION_DELETED, null, relation);
});
}
protected void onEntitySaved(SecurityUser user, E savedEntity, E oldEntity) throws ThingsboardException {
entityActionService.logEntityAction(user, savedEntity.getId(), savedEntity,
savedEntity instanceof HasCustomerId ? ((HasCustomerId) savedEntity).getCustomerId() : user.getCustomerId(),

Loading…
Cancel
Save