Commit 279718017643cb99b9bef28a914501f7b109185d

Authored by Volodymyr Babak
1 parent f29d15d8

Added isFullAccess check

... ... @@ -17,7 +17,9 @@ package org.thingsboard.server.service.edge.rpc;
17 17
18 18 import com.datastax.driver.core.utils.UUIDs;
19 19 import com.fasterxml.jackson.core.JsonProcessingException;
  20 +import com.fasterxml.jackson.databind.JsonNode;
20 21 import com.fasterxml.jackson.databind.ObjectMapper;
  22 +import com.fasterxml.jackson.databind.node.NullNode;
21 23 import com.fasterxml.jackson.databind.node.ObjectNode;
22 24 import com.google.common.util.concurrent.FutureCallback;
23 25 import com.google.common.util.concurrent.Futures;
... ... @@ -66,6 +68,7 @@ import org.thingsboard.server.common.data.relation.EntityRelation;
66 68 import org.thingsboard.server.common.data.relation.RelationTypeGroup;
67 69 import org.thingsboard.server.common.data.rule.RuleChain;
68 70 import org.thingsboard.server.common.data.rule.RuleChainMetaData;
  71 +import org.thingsboard.server.common.data.security.Authority;
69 72 import org.thingsboard.server.common.data.security.DeviceCredentials;
70 73 import org.thingsboard.server.common.data.security.DeviceCredentialsType;
71 74 import org.thingsboard.server.common.data.security.UserCredentials;
... ... @@ -602,6 +605,9 @@ public final class EdgeGrpcSession implements Closeable {
602 605 case ASSIGNED_TO_EDGE:
603 606 User user = ctx.getUserService().findUserById(edgeEvent.getTenantId(), userId);
604 607 if (user != null) {
  608 + boolean fullAccess = Authority.TENANT_ADMIN.equals(user.getAuthority());
  609 + setFullAccess(user, fullAccess);
  610 +
605 611 entityUpdateMsg = EntityUpdateMsg.newBuilder()
606 612 .setUserUpdateMsg(ctx.getUserUpdateMsgConstructor().constructUserUpdatedMsg(msgType, user))
607 613 .build();
... ... @@ -615,7 +621,7 @@ public final class EdgeGrpcSession implements Closeable {
615 621 break;
616 622 case CREDENTIALS_UPDATED:
617 623 UserCredentials userCredentialsByUserId = ctx.getUserService().findUserCredentialsByUserId(edge.getTenantId(), userId);
618   - if (userCredentialsByUserId != null) {
  624 + if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) {
619 625 UserCredentialsUpdateMsg userCredentialsUpdateMsg =
620 626 ctx.getUserUpdateMsgConstructor().constructUserCredentialsUpdatedMsg(userCredentialsByUserId);
621 627 entityUpdateMsg = EntityUpdateMsg.newBuilder()
... ... @@ -630,6 +636,15 @@ public final class EdgeGrpcSession implements Closeable {
630 636 }
631 637 }
632 638
  639 + private void setFullAccess(User user, boolean isFullAccess) {
  640 + JsonNode additionalInfo = user.getAdditionalInfo();
  641 + if (additionalInfo == null || additionalInfo instanceof NullNode) {
  642 + additionalInfo = mapper.createObjectNode();
  643 + }
  644 + ((ObjectNode) additionalInfo).put("isFullAccess", isFullAccess);
  645 + user.setAdditionalInfo(additionalInfo);
  646 + }
  647 +
633 648 private void processRelation(EdgeEvent edgeEvent, UpdateMsgType msgType) {
634 649 EntityRelation entityRelation = mapper.convertValue(edgeEvent.getEntityBody(), EntityRelation.class);
635 650 EntityUpdateMsg entityUpdateMsg = EntityUpdateMsg.newBuilder()
... ...