|
|
|
@ -113,6 +113,7 @@ import org.thingsboard.server.common.data.rpc.Rpc; |
|
|
|
import org.thingsboard.server.common.data.rule.RuleChain; |
|
|
|
import org.thingsboard.server.common.data.rule.RuleChainType; |
|
|
|
import org.thingsboard.server.common.data.rule.RuleNode; |
|
|
|
import org.thingsboard.server.common.data.security.UserCredentials; |
|
|
|
import org.thingsboard.server.common.data.util.ThrowingBiFunction; |
|
|
|
import org.thingsboard.server.common.data.widget.WidgetTypeDetails; |
|
|
|
import org.thingsboard.server.common.data.widget.WidgetsBundle; |
|
|
|
@ -187,6 +188,8 @@ import java.util.stream.Collectors; |
|
|
|
|
|
|
|
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.controller.ControllerConstants.DEFAULT_DASHBOARD; |
|
|
|
import static org.thingsboard.server.controller.ControllerConstants.HOME_DASHBOARD; |
|
|
|
import static org.thingsboard.server.controller.UserController.YOU_DON_T_HAVE_PERMISSION_TO_PERFORM_THIS_OPERATION; |
|
|
|
import static org.thingsboard.server.dao.service.Validator.validateId; |
|
|
|
|
|
|
|
@ -872,6 +875,22 @@ public abstract class BaseController { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected void processUserAdditionalInfo(User user) throws ThingsboardException { |
|
|
|
if (user.getAdditionalInfo().isObject()) { |
|
|
|
ObjectNode additionalInfo = (ObjectNode) user.getAdditionalInfo(); |
|
|
|
processDashboardIdFromAdditionalInfo(additionalInfo); |
|
|
|
UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getTenantId(), user.getId()); |
|
|
|
if (userCredentials.isEnabled() && !additionalInfo.has("userCredentialsEnabled")) { |
|
|
|
additionalInfo.put("userCredentialsEnabled", true); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected void processDashboardIdFromAdditionalInfo(ObjectNode additionalInfo) throws ThingsboardException { |
|
|
|
processDashboardIdFromAdditionalInfo(additionalInfo, DEFAULT_DASHBOARD); |
|
|
|
processDashboardIdFromAdditionalInfo(additionalInfo, HOME_DASHBOARD); |
|
|
|
} |
|
|
|
|
|
|
|
protected void processDashboardIdFromAdditionalInfo(ObjectNode additionalInfo, String requiredFields) throws ThingsboardException { |
|
|
|
String dashboardId = additionalInfo.has(requiredFields) ? additionalInfo.get(requiredFields).asText() : null; |
|
|
|
if (dashboardId != null && !dashboardId.equals("null")) { |
|
|
|
|