Browse Source

refactor(solutions): use User instead of SecurityUser in install context

Propagate User through SolutionInstallContext, DefaultSolutionService,
and TbCalculatedFieldService.delete so non-security-context callers can
drive solution installs and calculated-field cleanup. Pass
TenantSolutionTemplateInstructions into the context constructor so the
caller controls instruction state.
pull/15539/head
Igor Kulikov 5 months ago
parent
commit
b84845f258
  1. 3
      application/src/main/java/org/thingsboard/server/service/entitiy/cf/DefaultTbCalculatedFieldService.java
  2. 3
      application/src/main/java/org/thingsboard/server/service/entitiy/cf/TbCalculatedFieldService.java
  3. 1437
      application/src/main/java/org/thingsboard/server/service/solutions/DefaultSolutionService.java
  4. 7
      application/src/main/java/org/thingsboard/server/service/solutions/data/SolutionInstallContext.java

3
application/src/main/java/org/thingsboard/server/service/entitiy/cf/DefaultTbCalculatedFieldService.java

@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.audit.ActionType;
import org.thingsboard.server.common.data.cf.CalculatedField; import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.exception.ThingsboardException;
@ -76,7 +77,7 @@ public class DefaultTbCalculatedFieldService extends AbstractTbEntityService imp
@Override @Override
@Transactional @Transactional
public void delete(CalculatedField calculatedField, SecurityUser user) { public void delete(CalculatedField calculatedField, User user) {
ActionType actionType = ActionType.DELETED; ActionType actionType = ActionType.DELETED;
TenantId tenantId = calculatedField.getTenantId(); TenantId tenantId = calculatedField.getTenantId();
CalculatedFieldId calculatedFieldId = calculatedField.getId(); CalculatedFieldId calculatedFieldId = calculatedField.getId();

3
application/src/main/java/org/thingsboard/server/service/entitiy/cf/TbCalculatedFieldService.java

@ -15,6 +15,7 @@
*/ */
package org.thingsboard.server.service.entitiy.cf; package org.thingsboard.server.service.entitiy.cf;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.cf.CalculatedField; import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.CalculatedFieldId; import org.thingsboard.server.common.data.id.CalculatedFieldId;
@ -31,6 +32,6 @@ public interface TbCalculatedFieldService {
PageData<CalculatedField> findAllByTenantIdAndEntityId(EntityId entityId, SecurityUser user, PageLink pageLink); PageData<CalculatedField> findAllByTenantIdAndEntityId(EntityId entityId, SecurityUser user, PageLink pageLink);
void delete(CalculatedField calculatedField, SecurityUser user); void delete(CalculatedField calculatedField, User user);
} }

1437
application/src/main/java/org/thingsboard/server/service/solutions/DefaultSolutionService.java

File diff suppressed because it is too large

7
application/src/main/java/org/thingsboard/server/service/solutions/data/SolutionInstallContext.java

@ -29,7 +29,6 @@ import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.service.security.model.SecurityUser;
import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.common.data.rule.RuleChain;
import org.thingsboard.server.service.solutions.data.definition.AssetDefinition; import org.thingsboard.server.service.solutions.data.definition.AssetDefinition;
import org.thingsboard.server.service.solutions.data.definition.AssetProfileDefinition; import org.thingsboard.server.service.solutions.data.definition.AssetProfileDefinition;
@ -57,7 +56,7 @@ public class SolutionInstallContext {
private final TenantId tenantId; private final TenantId tenantId;
private final Path tempDir; private final Path tempDir;
private final SecurityUser user; private final User user;
private final TenantSolutionTemplateInstructions solutionInstructions; private final TenantSolutionTemplateInstructions solutionInstructions;
private final List<EntityId> createdEntitiesList = new ArrayList<>(); private final List<EntityId> createdEntitiesList = new ArrayList<>();
private final Map<String, String> realIds = new HashMap<>(); private final Map<String, String> realIds = new HashMap<>();
@ -78,12 +77,12 @@ public class SolutionInstallContext {
private Map<String, EmulatorDefinition> deviceEmulators; private Map<String, EmulatorDefinition> deviceEmulators;
private Map<String, EmulatorDefinition> assetEmulators; private Map<String, EmulatorDefinition> assetEmulators;
public SolutionInstallContext(TenantId tenantId, String solutionId, Path tempDir, SecurityUser user) { public SolutionInstallContext(TenantId tenantId, String solutionId, Path tempDir, User user, TenantSolutionTemplateInstructions solutionInstructions) {
this.tenantId = tenantId; this.tenantId = tenantId;
this.solutionId = solutionId; this.solutionId = solutionId;
this.tempDir = tempDir; this.tempDir = tempDir;
this.user = user; this.user = user;
this.solutionInstructions = new TenantSolutionTemplateInstructions(); this.solutionInstructions = solutionInstructions;
this.installTs = System.currentTimeMillis(); this.installTs = System.currentTimeMillis();
put(new EntitySearchKey(tenantId, EntityType.TENANT, null), tenantId); put(new EntitySearchKey(tenantId, EntityType.TENANT, null), tenantId);
} }

Loading…
Cancel
Save