Browse Source

Added isFullAccess check

pull/2436/head
Volodymyr Babak 6 years ago
parent
commit
2797180176
  1. 17
      application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java

17
application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java

@ -17,7 +17,9 @@ package org.thingsboard.server.service.edge.rpc;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.NullNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
@ -66,6 +68,7 @@ import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.common.data.rule.RuleChain;
import org.thingsboard.server.common.data.rule.RuleChainMetaData;
import org.thingsboard.server.common.data.security.Authority;
import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.common.data.security.DeviceCredentialsType;
import org.thingsboard.server.common.data.security.UserCredentials;
@ -602,6 +605,9 @@ public final class EdgeGrpcSession implements Closeable {
case ASSIGNED_TO_EDGE:
User user = ctx.getUserService().findUserById(edgeEvent.getTenantId(), userId);
if (user != null) {
boolean fullAccess = Authority.TENANT_ADMIN.equals(user.getAuthority());
setFullAccess(user, fullAccess);
entityUpdateMsg = EntityUpdateMsg.newBuilder()
.setUserUpdateMsg(ctx.getUserUpdateMsgConstructor().constructUserUpdatedMsg(msgType, user))
.build();
@ -615,7 +621,7 @@ public final class EdgeGrpcSession implements Closeable {
break;
case CREDENTIALS_UPDATED:
UserCredentials userCredentialsByUserId = ctx.getUserService().findUserCredentialsByUserId(edge.getTenantId(), userId);
if (userCredentialsByUserId != null) {
if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) {
UserCredentialsUpdateMsg userCredentialsUpdateMsg =
ctx.getUserUpdateMsgConstructor().constructUserCredentialsUpdatedMsg(userCredentialsByUserId);
entityUpdateMsg = EntityUpdateMsg.newBuilder()
@ -630,6 +636,15 @@ public final class EdgeGrpcSession implements Closeable {
}
}
private void setFullAccess(User user, boolean isFullAccess) {
JsonNode additionalInfo = user.getAdditionalInfo();
if (additionalInfo == null || additionalInfo instanceof NullNode) {
additionalInfo = mapper.createObjectNode();
}
((ObjectNode) additionalInfo).put("isFullAccess", isFullAccess);
user.setAdditionalInfo(additionalInfo);
}
private void processRelation(EdgeEvent edgeEvent, UpdateMsgType msgType) {
EntityRelation entityRelation = mapper.convertValue(edgeEvent.getEntityBody(), EntityRelation.class);
EntityUpdateMsg entityUpdateMsg = EntityUpdateMsg.newBuilder()

Loading…
Cancel
Save