diff --git a/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java b/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java index a2c3fc07c8..264ac70443 100644 --- a/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/entitiy/EntityServiceTest.java @@ -1116,6 +1116,29 @@ public class EntityServiceTest extends AbstractControllerTest { assertThat(deviceName).isEqualTo(devices.get(0).getName()); } + @Test + public void testFindCustomerBySingleEntityFilter() { + SingleEntityFilter singleEntityFilter = new SingleEntityFilter(); + singleEntityFilter.setSingleEntity(customerId); + List entityFields = List.of( + new EntityKey(EntityKeyType.ENTITY_FIELD, "name") + ); + EntityDataPageLink pageLink = new EntityDataPageLink(1000, 0, null, null); + EntityDataQuery query = new EntityDataQuery(singleEntityFilter, pageLink, entityFields, null, null); + + //find by tenant + PageData result = findByQueryAndCheck(query, 1); + String customerName = result.getData().get(0).getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue(); + assertThat(customerName).isEqualTo(TEST_CUSTOMER_NAME); + + // find by customer user + PageData customerResults = findByQueryAndCheck(customerId, query, 1); + + customerName = customerResults.getData().get(0).getLatest().get(EntityKeyType.ENTITY_FIELD).get("name").getValue(); + assertThat(customerName).isEqualTo(TEST_CUSTOMER_NAME); + } + + @Test public void testFindEntitiesByRelationEntityTypeFilter() { Customer customer = new Customer(); diff --git a/common/edqs/src/main/java/org/thingsboard/server/edqs/query/processor/AbstractQueryProcessor.java b/common/edqs/src/main/java/org/thingsboard/server/edqs/query/processor/AbstractQueryProcessor.java index 0c83ae4e61..30e963c252 100644 --- a/common/edqs/src/main/java/org/thingsboard/server/edqs/query/processor/AbstractQueryProcessor.java +++ b/common/edqs/src/main/java/org/thingsboard/server/edqs/query/processor/AbstractQueryProcessor.java @@ -64,8 +64,9 @@ public abstract class AbstractQueryProcessor implements } protected static boolean checkCustomerId(UUID customerId, EntityData ed) { - return customerId.equals(ed.getCustomerId()) || (ed.getEntityType() == EntityType.DASHBOARD && - ed.getFields().getAssignedCustomerIds().contains(customerId)); + return customerId.equals(ed.getCustomerId()) + || (ed.getEntityType() == EntityType.DASHBOARD && ed.getFields().getAssignedCustomerIds().contains(customerId)) + || (ed.getEntityType() == EntityType.CUSTOMER && customerId.equals(ed.getId())); } protected boolean matches(EntityData ed) {