From a613e1dbc6ed68e6533533561d43201252de50fe Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 16 Feb 2023 17:46:24 +0200 Subject: [PATCH] refactoring --- .../server/controller/UserController.java | 37 ++----------------- .../controller/BaseUserControllerTest.java | 8 ++-- .../server/common/data/query/KeyFilter.java | 6 --- .../data/query/StringFilterPredicate.java | 6 --- 4 files changed, 8 insertions(+), 49 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/UserController.java b/application/src/main/java/org/thingsboard/server/controller/UserController.java index 7e768b747f..032d664c1b 100644 --- a/application/src/main/java/org/thingsboard/server/controller/UserController.java +++ b/application/src/main/java/org/thingsboard/server/controller/UserController.java @@ -49,16 +49,11 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; -import org.thingsboard.server.common.data.query.EntityData; import org.thingsboard.server.common.data.query.EntityDataPageLink; import org.thingsboard.server.common.data.query.EntityDataQuery; import org.thingsboard.server.common.data.query.EntityDataSortOrder; import org.thingsboard.server.common.data.query.EntityKey; -import org.thingsboard.server.common.data.query.EntityKeyType; import org.thingsboard.server.common.data.query.EntityTypeFilter; -import org.thingsboard.server.common.data.query.FilterPredicateValue; -import org.thingsboard.server.common.data.query.KeyFilter; -import org.thingsboard.server.common.data.query.StringFilterPredicate; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.common.data.security.UserSettings; @@ -76,14 +71,11 @@ import org.thingsboard.server.service.security.system.SystemSecurityService; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.thingsboard.server.common.data.StringUtils.isNotEmpty; import static org.thingsboard.server.common.data.query.EntityKeyType.ENTITY_FIELD; -import static org.thingsboard.server.common.data.query.FilterPredicateValue.fromString; -import static org.thingsboard.server.common.data.query.StringFilterPredicate.StringOperation.EQUAL; import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_ID; import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_ID_PARAM_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.DEFAULT_DASHBOARD; @@ -328,10 +320,10 @@ public class UserController extends BaseController { } @ApiOperation(value = "Find users by query (findUsersByQuery)", - notes = "Returns a page of user data owned by tenant or customer." + - PAGE_DATA_PARAMETERS + TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH) + notes = "Returns page of user data objects. Search is been executed by email, firstName and " + + "lastName fields. " + PAGE_DATA_PARAMETERS + TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") - @RequestMapping(value = "/users/find", method = RequestMethod.GET) + @RequestMapping(value = "/users/info", method = RequestMethod.GET) @ResponseBody public PageData findUsersByQuery( @ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @@ -348,33 +340,12 @@ public class UserController extends BaseController { EntityTypeFilter entityFilter = new EntityTypeFilter(); entityFilter.setEntityType(EntityType.USER); - EntityDataPageLink pageLink = new EntityDataPageLink(pageSize, page, textSearch, createEntityDataSortOrder(sortProperty, sortOrder)); - List entityFields = Arrays.asList(new EntityKey(ENTITY_FIELD, "firstName"), new EntityKey(ENTITY_FIELD, "lastName"), new EntityKey(ENTITY_FIELD, "email")); - List keyFilters = new ArrayList<>(); - KeyFilter tenantIdFilter = KeyFilter.builder() - .key(new EntityKey(ENTITY_FIELD, "tenantId")) - .predicate(StringFilterPredicate.builder() - .operation(EQUAL) - .value(fromString(securityUser.getTenantId().getId().toString())).build()) - .build(); - keyFilters.add(tenantIdFilter); - - if (!Authority.TENANT_ADMIN.equals(securityUser.getAuthority())) { - KeyFilter customerIdFilter = KeyFilter.builder() - .key(new EntityKey(ENTITY_FIELD, "customerId")) - .predicate(StringFilterPredicate.builder() - .operation(EQUAL) - .value(fromString(securityUser.getCustomerId().getId().toString())).build()) - .build(); - keyFilters.add(customerIdFilter); - } - - EntityDataQuery query = new EntityDataQuery(entityFilter, pageLink, entityFields, null, keyFilters); + EntityDataQuery query = new EntityDataQuery(entityFilter, pageLink, entityFields, null, null); return entityQueryService.findEntityDataByQuery(securityUser, query).mapData(entityData -> new UserData(UserId.fromString(entityData.getEntityId().getId().toString()), diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseUserControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseUserControllerTest.java index 5df1c8acb5..4c7b783dc0 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseUserControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseUserControllerTest.java @@ -915,7 +915,7 @@ public abstract class BaseUserControllerTest extends AbstractControllerTest { PageLink pageLink = new PageLink(10, 0, "Name"); PageData pageData = null; do { - pageData = doGetTypedWithPageLink("/api/users/find?", + pageData = doGetTypedWithPageLink("/api/users/info?", new TypeReference<>() { }, pageLink); loadedCustomerUsers.addAll(pageData.getData()); @@ -934,7 +934,7 @@ public abstract class BaseUserControllerTest extends AbstractControllerTest { // find user my full name loadedCustomerUsers.clear(); pageLink = new PageLink(10, 0, "Name3"); - pageData = doGetTypedWithPageLink("/api/users/find?", + pageData = doGetTypedWithPageLink("/api/users/info?", new TypeReference<>() { }, pageLink); loadedCustomerUsers.addAll(pageData.getData()); @@ -995,7 +995,7 @@ public abstract class BaseUserControllerTest extends AbstractControllerTest { PageLink pageLink = new PageLink(10, 0, "Name"); PageData pageData = null; do { - pageData = doGetTypedWithPageLink("/api/users/find?", + pageData = doGetTypedWithPageLink("/api/users/info?", new TypeReference<>() { }, pageLink); loadedCustomerUsers.addAll(pageData.getData()); @@ -1014,7 +1014,7 @@ public abstract class BaseUserControllerTest extends AbstractControllerTest { // find user my full name loadedCustomerUsers.clear(); pageLink = new PageLink(10, 0, "SecondCustomerLastname3"); - pageData = doGetTypedWithPageLink("/api/users/find?", + pageData = doGetTypedWithPageLink("/api/users/info?", new TypeReference<>() { }, pageLink); loadedCustomerUsers.addAll(pageData.getData()); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/KeyFilter.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/KeyFilter.java index c81b2b8db6..ad5d42e31d 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/query/KeyFilter.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/KeyFilter.java @@ -16,18 +16,12 @@ package org.thingsboard.server.common.data.query; import io.swagger.annotations.ApiModel; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import java.io.Serializable; @ApiModel @Data -@Builder -@AllArgsConstructor -@NoArgsConstructor public class KeyFilter implements Serializable { private EntityKey key; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/StringFilterPredicate.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/StringFilterPredicate.java index f30ec6c9fd..125ca4665a 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/query/StringFilterPredicate.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/StringFilterPredicate.java @@ -15,17 +15,11 @@ */ package org.thingsboard.server.common.data.query; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import javax.validation.Valid; @Data -@Builder -@AllArgsConstructor -@NoArgsConstructor public class StringFilterPredicate implements SimpleKeyFilterPredicate { private StringOperation operation;