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.transaction.annotation.Transactional;
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.cf.CalculatedField;
import org.thingsboard.server.common.data.exception.ThingsboardException;
@ -76,7 +77,7 @@ public class DefaultTbCalculatedFieldService extends AbstractTbEntityService imp
@Override
@Transactional
public void delete(CalculatedField calculatedField, SecurityUser user) {
public void delete(CalculatedField calculatedField, User user) {
ActionType actionType = ActionType.DELETED;
TenantId tenantId = calculatedField.getTenantId();
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;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.CalculatedFieldId;
@ -31,6 +32,6 @@ public interface TbCalculatedFieldService {
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.id.EntityId;
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.service.solutions.data.definition.AssetDefinition;
import org.thingsboard.server.service.solutions.data.definition.AssetProfileDefinition;
@ -57,7 +56,7 @@ public class SolutionInstallContext {
private final TenantId tenantId;
private final Path tempDir;
private final SecurityUser user;
private final User user;
private final TenantSolutionTemplateInstructions solutionInstructions;
private final List<EntityId> createdEntitiesList = new ArrayList<>();
private final Map<String, String> realIds = new HashMap<>();
@ -78,12 +77,12 @@ public class SolutionInstallContext {
private Map<String, EmulatorDefinition> deviceEmulators;
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.solutionId = solutionId;
this.tempDir = tempDir;
this.user = user;
this.solutionInstructions = new TenantSolutionTemplateInstructions();
this.solutionInstructions = solutionInstructions;
this.installTs = System.currentTimeMillis();
put(new EntitySearchKey(tenantId, EntityType.TENANT, null), tenantId);
}

Loading…
Cancel
Save