Browse Source

revert tenant filtering except for type-based lookup

pull/15308/head
IrynaMatveieva 6 months ago
parent
commit
0e8995eb93
  1. 6
      application/src/main/java/org/thingsboard/server/service/cf/CalculatedFieldCache.java
  2. 20
      application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldCache.java
  3. 6
      application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldQueueService.java

6
application/src/main/java/org/thingsboard/server/service/cf/CalculatedFieldCache.java

@ -33,13 +33,13 @@ public interface CalculatedFieldCache {
CalculatedField getCalculatedField(CalculatedFieldId calculatedFieldId); CalculatedField getCalculatedField(CalculatedFieldId calculatedFieldId);
List<CalculatedField> getCalculatedFieldsByEntityId(TenantId tenantId, EntityId entityId); List<CalculatedField> getCalculatedFieldsByEntityId(EntityId entityId);
List<CalculatedFieldLink> getCalculatedFieldLinksByEntityId(TenantId tenantId, EntityId entityId); List<CalculatedFieldLink> getCalculatedFieldLinksByEntityId(EntityId entityId);
CalculatedFieldCtx getCalculatedFieldCtx(CalculatedFieldId calculatedFieldId); CalculatedFieldCtx getCalculatedFieldCtx(CalculatedFieldId calculatedFieldId);
List<CalculatedFieldCtx> getCalculatedFieldCtxsByEntityId(TenantId tenantId, EntityId entityId); List<CalculatedFieldCtx> getCalculatedFieldCtxsByEntityId(EntityId entityId);
Stream<CalculatedFieldCtx> getCalculatedFieldCtxsByType(TenantId tenantId, CalculatedFieldType cfType); Stream<CalculatedFieldCtx> getCalculatedFieldCtxsByType(TenantId tenantId, CalculatedFieldType cfType);

20
application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldCache.java

@ -108,17 +108,13 @@ public class DefaultCalculatedFieldCache implements CalculatedFieldCache {
} }
@Override @Override
public List<CalculatedField> getCalculatedFieldsByEntityId(TenantId tenantId, EntityId entityId) { public List<CalculatedField> getCalculatedFieldsByEntityId(EntityId entityId) {
return entityIdCalculatedFields.getOrDefault(entityId, Collections.emptyList()).stream() return entityIdCalculatedFields.getOrDefault(entityId, Collections.emptyList());
.filter(cf -> cf.getTenantId().equals(tenantId))
.toList();
} }
@Override @Override
public List<CalculatedFieldLink> getCalculatedFieldLinksByEntityId(TenantId tenantId, EntityId entityId) { public List<CalculatedFieldLink> getCalculatedFieldLinksByEntityId(EntityId entityId) {
return entityIdCalculatedFieldLinks.getOrDefault(entityId, Collections.emptyList()).stream() return entityIdCalculatedFieldLinks.getOrDefault(entityId, Collections.emptyList());
.filter(link -> link.tenantId().equals(tenantId))
.toList();
} }
@Override @Override
@ -146,11 +142,11 @@ public class DefaultCalculatedFieldCache implements CalculatedFieldCache {
} }
@Override @Override
public List<CalculatedFieldCtx> getCalculatedFieldCtxsByEntityId(TenantId tenantId, EntityId entityId) { public List<CalculatedFieldCtx> getCalculatedFieldCtxsByEntityId(EntityId entityId) {
if (entityId == null) { if (entityId == null) {
return Collections.emptyList(); return Collections.emptyList();
} }
return getCalculatedFieldsByEntityId(tenantId, entityId).stream() return getCalculatedFieldsByEntityId(entityId).stream()
.map(cf -> getCalculatedFieldCtx(cf.getId())) .map(cf -> getCalculatedFieldCtx(cf.getId()))
.toList(); .toList();
} }
@ -164,7 +160,7 @@ public class DefaultCalculatedFieldCache implements CalculatedFieldCache {
@Override @Override
public boolean hasCalculatedFields(TenantId tenantId, EntityId entityId, Predicate<CalculatedFieldCtx> filter) { public boolean hasCalculatedFields(TenantId tenantId, EntityId entityId, Predicate<CalculatedFieldCtx> filter) {
List<CalculatedFieldCtx> entityCfs = getCalculatedFieldCtxsByEntityId(tenantId, entityId); List<CalculatedFieldCtx> entityCfs = getCalculatedFieldCtxsByEntityId(entityId);
for (CalculatedFieldCtx ctx : entityCfs) { for (CalculatedFieldCtx ctx : entityCfs) {
if (filter.test(ctx)) { if (filter.test(ctx)) {
return true; return true;
@ -177,7 +173,7 @@ public class DefaultCalculatedFieldCache implements CalculatedFieldCache {
public boolean hasCalculatedFieldsByProfile(TenantId tenantId, EntityId entityId, Predicate<CalculatedFieldCtx> filter) { public boolean hasCalculatedFieldsByProfile(TenantId tenantId, EntityId entityId, Predicate<CalculatedFieldCtx> filter) {
EntityId profileId = getProfileId(tenantId, entityId); EntityId profileId = getProfileId(tenantId, entityId);
if (profileId != null) { if (profileId != null) {
List<CalculatedFieldCtx> profileCfs = getCalculatedFieldCtxsByEntityId(tenantId, profileId); List<CalculatedFieldCtx> profileCfs = getCalculatedFieldCtxsByEntityId(profileId);
for (CalculatedFieldCtx ctx : profileCfs) { for (CalculatedFieldCtx ctx : profileCfs) {
if (filter.test(ctx)) { if (filter.test(ctx)) {
return true; return true;

6
application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldQueueService.java

@ -171,7 +171,7 @@ public class DefaultCalculatedFieldQueueService implements CalculatedFieldQueueS
return true; return true;
} }
List<CalculatedFieldLink> links = calculatedFieldCache.getCalculatedFieldLinksByEntityId(tenantId, entityId); List<CalculatedFieldLink> links = calculatedFieldCache.getCalculatedFieldLinksByEntityId(entityId);
for (CalculatedFieldLink link : links) { for (CalculatedFieldLink link : links) {
CalculatedFieldCtx ctx = calculatedFieldCache.getCalculatedFieldCtx(link.calculatedFieldId()); CalculatedFieldCtx ctx = calculatedFieldCache.getCalculatedFieldCtx(link.calculatedFieldId());
if (ctx != null && linkedEntityFilter.test(ctx)) { if (ctx != null && linkedEntityFilter.test(ctx)) {
@ -180,11 +180,11 @@ public class DefaultCalculatedFieldQueueService implements CalculatedFieldQueueS
} }
for (EntityId dynamicEntity : calculatedFieldCache.getDynamicEntities(tenantId, entityId)) { for (EntityId dynamicEntity : calculatedFieldCache.getDynamicEntities(tenantId, entityId)) {
if (calculatedFieldCache.getCalculatedFieldCtxsByEntityId(tenantId, dynamicEntity).stream().anyMatch(dynamicSourceFilter)) { if (calculatedFieldCache.getCalculatedFieldCtxsByEntityId(dynamicEntity).stream().anyMatch(dynamicSourceFilter)) {
return true; return true;
} }
EntityId dynamicEntityProfileId = calculatedFieldCache.getProfileId(tenantId, dynamicEntity); EntityId dynamicEntityProfileId = calculatedFieldCache.getProfileId(tenantId, dynamicEntity);
if (calculatedFieldCache.getCalculatedFieldCtxsByEntityId(tenantId, dynamicEntityProfileId).stream().anyMatch(dynamicSourceFilter)) { if (calculatedFieldCache.getCalculatedFieldCtxsByEntityId(dynamicEntityProfileId).stream().anyMatch(dynamicSourceFilter)) {
return true; return true;
} }
} }

Loading…
Cancel
Save