Commit 9728478b0df75e442eb3c39898b56aab56ec05dc

Authored by AndrewVolosytnykhThingsboard
Committed by GitHub
1 parent 5865dd28

Stub for querying entities after deleting dashboard (#4107)

* Code cleaning after review

* Code cleaning

* Refactoring

* Clean solution improved

* Imports standartization

* Correct if statement improved
... ... @@ -27,7 +27,22 @@ import org.springframework.beans.factory.annotation.Value;
27 27 import org.springframework.security.core.Authentication;
28 28 import org.springframework.security.core.context.SecurityContextHolder;
29 29 import org.springframework.web.bind.annotation.ExceptionHandler;
30   -import org.thingsboard.server.common.data.*;
  30 +import org.thingsboard.server.common.data.Customer;
  31 +import org.thingsboard.server.common.data.Dashboard;
  32 +import org.thingsboard.server.common.data.DashboardInfo;
  33 +import org.thingsboard.server.common.data.DataConstants;
  34 +import org.thingsboard.server.common.data.Device;
  35 +import org.thingsboard.server.common.data.DeviceInfo;
  36 +import org.thingsboard.server.common.data.DeviceProfile;
  37 +import org.thingsboard.server.common.data.EntityType;
  38 +import org.thingsboard.server.common.data.EntityView;
  39 +import org.thingsboard.server.common.data.EntityViewInfo;
  40 +import org.thingsboard.server.common.data.HasName;
  41 +import org.thingsboard.server.common.data.HasTenantId;
  42 +import org.thingsboard.server.common.data.Tenant;
  43 +import org.thingsboard.server.common.data.TenantInfo;
  44 +import org.thingsboard.server.common.data.TenantProfile;
  45 +import org.thingsboard.server.common.data.User;
31 46 import org.thingsboard.server.common.data.alarm.Alarm;
32 47 import org.thingsboard.server.common.data.alarm.AlarmInfo;
33 48 import org.thingsboard.server.common.data.asset.Asset;
... ... @@ -84,6 +99,7 @@ import org.thingsboard.server.dao.oauth2.OAuth2ConfigTemplateService;
84 99 import org.thingsboard.server.dao.oauth2.OAuth2Service;
85 100 import org.thingsboard.server.dao.relation.RelationService;
86 101 import org.thingsboard.server.dao.rule.RuleChainService;
  102 +import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
87 103 import org.thingsboard.server.dao.tenant.TenantProfileService;
88 104 import org.thingsboard.server.dao.tenant.TenantService;
89 105 import org.thingsboard.server.dao.user.UserService;
... ... @@ -95,7 +111,6 @@ import org.thingsboard.server.queue.provider.TbQueueProducerProvider;
95 111 import org.thingsboard.server.queue.util.TbCoreComponent;
96 112 import org.thingsboard.server.service.component.ComponentDiscoveryService;
97 113 import org.thingsboard.server.service.profile.TbDeviceProfileCache;
98   -import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
99 114 import org.thingsboard.server.service.queue.TbClusterService;
100 115 import org.thingsboard.server.service.security.model.SecurityUser;
101 116 import org.thingsboard.server.service.security.permission.AccessControlService;
... ... @@ -123,6 +138,9 @@ public abstract class BaseController {
123 138 public static final String INCORRECT_TENANT_ID = "Incorrect tenantId ";
124 139 public static final String YOU_DON_T_HAVE_PERMISSION_TO_PERFORM_THIS_OPERATION = "You don't have permission to perform this operation!";
125 140
  141 + protected static final String DEFAULT_DASHBOARD = "defaultDashboardId";
  142 + protected static final String HOME_DASHBOARD = "homeDashboardId";
  143 +
126 144 private static final ObjectMapper json = new ObjectMapper();
127 145
128 146 @Autowired
... ... @@ -858,4 +876,14 @@ public abstract class BaseController {
858 876 }
859 877 }
860 878 }
  879 +
  880 + protected void processDashboardIdFromAdditionalInfo(ObjectNode additionalInfo, String requiredFields) throws ThingsboardException {
  881 + String dashboardId = additionalInfo.has(requiredFields) ? additionalInfo.get(requiredFields).asText() : null;
  882 + if(dashboardId != null && !dashboardId.equals("null")) {
  883 + if(dashboardService.findDashboardById(getTenantId(), new DashboardId(UUID.fromString(dashboardId))) == null) {
  884 + additionalInfo.remove(requiredFields);
  885 + }
  886 + }
  887 + }
  888 +
861 889 }
... ...
... ... @@ -55,7 +55,11 @@ public class CustomerController extends BaseController {
55 55 checkParameter(CUSTOMER_ID, strCustomerId);
56 56 try {
57 57 CustomerId customerId = new CustomerId(toUUID(strCustomerId));
58   - return checkCustomerId(customerId, Operation.READ);
  58 + Customer customer = checkCustomerId(customerId, Operation.READ);
  59 + if(!customer.getAdditionalInfo().isNull()) {
  60 + processDashboardIdFromAdditionalInfo((ObjectNode) customer.getAdditionalInfo(), HOME_DASHBOARD);
  61 + }
  62 + return customer;
59 63 } catch (Exception e) {
60 64 throw handleException(e);
61 65 }
... ...
... ... @@ -15,6 +15,7 @@
15 15 */
16 16 package org.thingsboard.server.controller;
17 17
  18 +import com.fasterxml.jackson.databind.node.ObjectNode;
18 19 import lombok.extern.slf4j.Slf4j;
19 20 import org.springframework.beans.factory.annotation.Autowired;
20 21 import org.springframework.http.HttpStatus;
... ... @@ -59,7 +60,11 @@ public class TenantController extends BaseController {
59 60 checkParameter("tenantId", strTenantId);
60 61 try {
61 62 TenantId tenantId = new TenantId(toUUID(strTenantId));
62   - return checkTenantId(tenantId, Operation.READ);
  63 + Tenant tenant = checkTenantId(tenantId, Operation.READ);
  64 + if(!tenant.getAdditionalInfo().isNull()) {
  65 + processDashboardIdFromAdditionalInfo((ObjectNode) tenant.getAdditionalInfo(), HOME_DASHBOARD);
  66 + }
  67 + return tenant;
63 68 } catch (Exception e) {
64 69 throw handleException(e);
65 70 }
... ...
... ... @@ -53,7 +53,6 @@ import org.thingsboard.server.service.security.model.token.JwtTokenFactory;
53 53 import org.thingsboard.server.service.security.permission.Operation;
54 54 import org.thingsboard.server.service.security.permission.Resource;
55 55 import org.thingsboard.server.service.security.system.SystemSecurityService;
56   -import org.thingsboard.server.utils.MiscUtils;
57 56
58 57 import javax.servlet.http.HttpServletRequest;
59 58
... ... @@ -90,7 +89,12 @@ public class UserController extends BaseController {
90 89 checkParameter(USER_ID, strUserId);
91 90 try {
92 91 UserId userId = new UserId(toUUID(strUserId));
93   - return checkUserId(userId, Operation.READ);
  92 + User user = checkUserId(userId, Operation.READ);
  93 + if(!user.getAdditionalInfo().isNull()) {
  94 + processDashboardIdFromAdditionalInfo((ObjectNode) user.getAdditionalInfo(), DEFAULT_DASHBOARD);
  95 + processDashboardIdFromAdditionalInfo((ObjectNode) user.getAdditionalInfo(), HOME_DASHBOARD);
  96 + }
  97 + return user;
94 98 } catch (Exception e) {
95 99 throw handleException(e);
96 100 }
... ... @@ -329,4 +333,5 @@ public class UserController extends BaseController {
329 333 throw handleException(e);
330 334 }
331 335 }
  336 +
332 337 }
... ...