Browse Source

Fixes after merge

pull/2818/head
Volodymyr Babak 6 years ago
parent
commit
95ce5595fc
  1. 4
      application/src/main/java/org/thingsboard/server/service/security/permission/Resource.java
  2. 9
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractRelationActionNode.java
  3. 7
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAssignToCustomerNode.java
  4. 13
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateRelationNode.java
  5. 7
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbUnassignFromCustomerNode.java
  6. 3
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeSwitchNode.java
  7. 13
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java

4
application/src/main/java/org/thingsboard/server/service/security/permission/Resource.java

@ -27,12 +27,12 @@ public enum Resource {
CUSTOMER(EntityType.CUSTOMER), CUSTOMER(EntityType.CUSTOMER),
DASHBOARD(EntityType.DASHBOARD), DASHBOARD(EntityType.DASHBOARD),
ENTITY_VIEW(EntityType.ENTITY_VIEW), ENTITY_VIEW(EntityType.ENTITY_VIEW),
EDGE(EntityType.EDGE),
TENANT(EntityType.TENANT), TENANT(EntityType.TENANT),
RULE_CHAIN(EntityType.RULE_CHAIN), RULE_CHAIN(EntityType.RULE_CHAIN),
USER(EntityType.USER), USER(EntityType.USER),
WIDGETS_BUNDLE(EntityType.WIDGETS_BUNDLE), WIDGETS_BUNDLE(EntityType.WIDGETS_BUNDLE),
WIDGET_TYPE(EntityType.WIDGET_TYPE), WIDGET_TYPE(EntityType.WIDGET_TYPE);
EDGE(EntityType.EDGE);
private final EntityType entityType; private final EntityType entityType;

9
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractRelationActionNode.java

@ -36,6 +36,7 @@ import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.Asset;
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.EntityIdFactory; import org.thingsboard.server.common.data.id.EntityIdFactory;
import org.thingsboard.server.common.data.page.TextPageData; import org.thingsboard.server.common.data.page.TextPageData;
@ -48,6 +49,7 @@ import org.thingsboard.server.dao.asset.AssetService;
import org.thingsboard.server.dao.customer.CustomerService; import org.thingsboard.server.dao.customer.CustomerService;
import org.thingsboard.server.dao.dashboard.DashboardService; import org.thingsboard.server.dao.dashboard.DashboardService;
import org.thingsboard.server.dao.device.DeviceService; import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.edge.EdgeService;
import org.thingsboard.server.dao.entityview.EntityViewService; import org.thingsboard.server.dao.entityview.EntityViewService;
import java.util.List; import java.util.List;
@ -236,6 +238,13 @@ public abstract class TbAbstractRelationActionNode<C extends TbAbstractRelationA
targetEntity.setEntityId(entityView.getId()); targetEntity.setEntityId(entityView.getId());
} }
break; break;
case EDGE:
EdgeService edgeService = ctx.getEdgeService();
Edge edge = edgeService.findEdgeByTenantIdAndName(ctx.getTenantId(), entitykey.getEntityName());
if (edge != null) {
targetEntity.setEntityId(edge.getId());
}
break;
case DASHBOARD: case DASHBOARD:
DashboardService dashboardService = ctx.getDashboardService(); DashboardService dashboardService = ctx.getDashboardService();
TextPageData<DashboardInfo> dashboardInfoTextPageData = dashboardService.findDashboardsByTenantId(ctx.getTenantId(), new TextPageLink(200, entitykey.getEntityName())); TextPageData<DashboardInfo> dashboardInfoTextPageData = dashboardService.findDashboardsByTenantId(ctx.getTenantId(), new TextPageLink(200, entitykey.getEntityName()));

7
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAssignToCustomerNode.java

@ -69,6 +69,9 @@ public class TbAssignToCustomerNode extends TbAbstractCustomerActionNode<TbAssig
case ENTITY_VIEW: case ENTITY_VIEW:
processAssignEntityView(ctx, msg, customerId); processAssignEntityView(ctx, msg, customerId);
break; break;
case EDGE:
processAssignEdge(ctx, msg, customerId);
break;
case DASHBOARD: case DASHBOARD:
processAssignDashboard(ctx, msg, customerId); processAssignDashboard(ctx, msg, customerId);
break; break;
@ -91,6 +94,10 @@ public class TbAssignToCustomerNode extends TbAbstractCustomerActionNode<TbAssig
ctx.getEntityViewService().assignEntityViewToCustomer(ctx.getTenantId(), new EntityViewId(msg.getOriginator().getId()), customerId); ctx.getEntityViewService().assignEntityViewToCustomer(ctx.getTenantId(), new EntityViewId(msg.getOriginator().getId()), customerId);
} }
private void processAssignEdge(TbContext ctx, TbMsg msg, CustomerId customerId) {
ctx.getEdgeService().assignEdgeToCustomer(ctx.getTenantId(), new EdgeId(msg.getOriginator().getId()), customerId);
}
private void processAssignDashboard(TbContext ctx, TbMsg msg, CustomerId customerId) { private void processAssignDashboard(TbContext ctx, TbMsg msg, CustomerId customerId) {
ctx.getDashboardService().assignDashboardToCustomer(ctx.getTenantId(), new DashboardId(msg.getOriginator().getId()), customerId); ctx.getDashboardService().assignDashboardToCustomer(ctx.getTenantId(), new DashboardId(msg.getOriginator().getId()), customerId);
} }

13
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateRelationNode.java

@ -28,6 +28,7 @@ import org.thingsboard.server.common.data.id.AssetId;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.plugin.ComponentType; import org.thingsboard.server.common.data.plugin.ComponentType;
@ -137,6 +138,8 @@ public class TbCreateRelationNode extends TbAbstractRelationActionNode<TbCreateR
return processDashboard(ctx, entityContainer, sdId, relationType); return processDashboard(ctx, entityContainer, sdId, relationType);
case ENTITY_VIEW: case ENTITY_VIEW:
return processView(ctx, entityContainer, sdId, relationType); return processView(ctx, entityContainer, sdId, relationType);
case EDGE:
return processEdge(ctx, entityContainer, sdId, relationType);
case TENANT: case TENANT:
return processTenant(ctx, entityContainer, sdId, relationType); return processTenant(ctx, entityContainer, sdId, relationType);
} }
@ -153,6 +156,16 @@ public class TbCreateRelationNode extends TbAbstractRelationActionNode<TbCreateR
}, ctx.getDbCallbackExecutor()); }, ctx.getDbCallbackExecutor());
} }
private ListenableFuture<Boolean> processEdge(TbContext ctx, EntityContainer entityContainer, SearchDirectionIds sdId, String relationType) {
return Futures.transformAsync(ctx.getEdgeService().findEdgeByIdAsync(ctx.getTenantId(), new EdgeId(entityContainer.getEntityId().getId())), edge -> {
if (edge != null) {
return processSave(ctx, sdId, relationType);
} else {
return Futures.immediateFuture(true);
}
}, ctx.getDbCallbackExecutor());
}
private ListenableFuture<Boolean> processDevice(TbContext ctx, EntityContainer entityContainer, SearchDirectionIds sdId, String relationType) { private ListenableFuture<Boolean> processDevice(TbContext ctx, EntityContainer entityContainer, SearchDirectionIds sdId, String relationType) {
return Futures.transformAsync(ctx.getDeviceService().findDeviceByIdAsync(ctx.getTenantId(), new DeviceId(entityContainer.getEntityId().getId())), device -> { return Futures.transformAsync(ctx.getDeviceService().findDeviceByIdAsync(ctx.getTenantId(), new DeviceId(entityContainer.getEntityId().getId())), device -> {
if (device != null) { if (device != null) {

7
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbUnassignFromCustomerNode.java

@ -62,6 +62,9 @@ public class TbUnassignFromCustomerNode extends TbAbstractCustomerActionNode<TbU
case ENTITY_VIEW: case ENTITY_VIEW:
processUnassignEntityView(ctx, msg); processUnassignEntityView(ctx, msg);
break; break;
case EDGE:
processUnassignEdge(ctx, msg);
break;
case DASHBOARD: case DASHBOARD:
processUnnasignDashboard(ctx, msg, customerId); processUnnasignDashboard(ctx, msg, customerId);
break; break;
@ -87,4 +90,8 @@ public class TbUnassignFromCustomerNode extends TbAbstractCustomerActionNode<TbU
private void processUnassignEntityView(TbContext ctx, TbMsg msg) { private void processUnassignEntityView(TbContext ctx, TbMsg msg) {
ctx.getEntityViewService().unassignEntityViewFromCustomer(ctx.getTenantId(), new EntityViewId(msg.getOriginator().getId())); ctx.getEntityViewService().unassignEntityViewFromCustomer(ctx.getTenantId(), new EntityViewId(msg.getOriginator().getId()));
} }
private void processUnassignEdge(TbContext ctx, TbMsg msg) {
ctx.getEdgeService().unassignEdgeFromCustomer(ctx.getTenantId(), new EdgeId(msg.getOriginator().getId()));
}
} }

3
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeSwitchNode.java

@ -70,6 +70,9 @@ public class TbOriginatorTypeSwitchNode implements TbNode {
case ENTITY_VIEW: case ENTITY_VIEW:
relationType = "Entity View"; relationType = "Entity View";
break; break;
case EDGE:
relationType = "Edge";
break;
case RULE_CHAIN: case RULE_CHAIN:
relationType = "Rule chain"; relationType = "Rule chain";
break; break;

13
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java

@ -28,6 +28,7 @@ import org.thingsboard.server.common.data.ContactBased;
import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.id.AssetId; import org.thingsboard.server.common.data.id.AssetId;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.plugin.ComponentType; import org.thingsboard.server.common.data.plugin.ComponentType;
import org.thingsboard.server.common.data.rule.RuleChainType; import org.thingsboard.server.common.data.rule.RuleChainType;
@ -108,6 +109,18 @@ public class TbGetCustomerDetailsNode extends TbAbstractGetEntityDetailsNode<TbG
return Futures.immediateFuture(null); return Futures.immediateFuture(null);
} }
}, MoreExecutors.directExecutor()); }, MoreExecutors.directExecutor());
case EDGE:
return Futures.transformAsync(ctx.getEdgeService().findEdgeByIdAsync(ctx.getTenantId(), new EdgeId(msg.getOriginator().getId())), edge -> {
if (edge != null) {
if (!edge.getCustomerId().isNullUid()) {
return ctx.getCustomerService().findCustomerByIdAsync(ctx.getTenantId(), edge.getCustomerId());
} else {
throw new RuntimeException("Edge with name '" + edge.getName() + "' is not assigned to Customer.");
}
} else {
return Futures.immediateFuture(null);
}
}, MoreExecutors.directExecutor());
default: default:
throw new RuntimeException("Entity with entityType '" + msg.getOriginator().getEntityType() + "' is not supported."); throw new RuntimeException("Entity with entityType '" + msg.getOriginator().getEntityType() + "' is not supported.");
} }

Loading…
Cancel
Save