From b80ad6d83933c12358d34d420f78a55d943f2095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 28 Oct 2025 10:58:35 +0100 Subject: [PATCH] Add missing thingError fpr IO connections --- libnymea-core/jsonrpc/integrationshandler.cpp | 4 +++- libnymea-core/jsonrpc/usershandler.cpp | 10 ++++++++-- libnymea-core/usermanager/usermanager.cpp | 1 - 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libnymea-core/jsonrpc/integrationshandler.cpp b/libnymea-core/jsonrpc/integrationshandler.cpp index e9c74051..d40e31ef 100644 --- a/libnymea-core/jsonrpc/integrationshandler.cpp +++ b/libnymea-core/jsonrpc/integrationshandler.cpp @@ -377,7 +377,8 @@ IntegrationsHandler::IntegrationsHandler(ThingManager *thingManager, QObject *pa params.clear(); returns.clear(); description = "Fetch IO connections. Optionally filtered by thingId and stateTypeId."; params.insert("o:thingId", enumValueName(Uuid)); - returns.insert("ioConnections", objectRef()); + returns.insert("o:ioConnections", objectRef()); + returns.insert("thingError", enumRef()); registerMethod("GetIOConnections", description, params, returns, Types::PermissionScopeNone); params.clear(); returns.clear(); @@ -1144,6 +1145,7 @@ JsonReply *IntegrationsHandler::GetIOConnections(const QVariantMap ¶ms, cons QVariantMap returns; QVariant bla = pack(ioConnections); returns.insert("ioConnections", pack(ioConnections)); + returns.insert("thingError", enumValueName(Thing::ThingErrorNoError)); return createReply(returns); } diff --git a/libnymea-core/jsonrpc/usershandler.cpp b/libnymea-core/jsonrpc/usershandler.cpp index e12220a6..1a6eb879 100644 --- a/libnymea-core/jsonrpc/usershandler.cpp +++ b/libnymea-core/jsonrpc/usershandler.cpp @@ -143,7 +143,6 @@ UsersHandler::UsersHandler(UserManager *userManager, QObject *parent): params.insert("username", username); emit UserRemoved(params); }); - } QString UsersHandler::name() const @@ -316,8 +315,15 @@ JsonReply *UsersHandler::SetUserScopes(const QVariantMap ¶ms, const JsonCont QString username = params.value("username").toString(); Types::PermissionScopes scopes = Types::scopesFromStringList(params.value("scopes").toStringList()); - QList allowedThingIds = Types::thingIdsFromStringList(params.value("allowedThingIds").toStringList()); + QList allowedThingIds; + if (params.contains("allowedThingIds")) { + allowedThingIds = Types::thingIdsFromStringList(params.value("allowedThingIds").toStringList()); + } else { + allowedThingIds = m_userManager->userInfo(username).allowedThingIds(); + } + UserManager::UserError error = m_userManager->setUserScopes(username, scopes, allowedThingIds); + QVariantMap returns; returns.insert("error", enumValueName(error)); return createReply(returns); diff --git a/libnymea-core/usermanager/usermanager.cpp b/libnymea-core/usermanager/usermanager.cpp index a36b7872..ac793e15 100644 --- a/libnymea-core/usermanager/usermanager.cpp +++ b/libnymea-core/usermanager/usermanager.cpp @@ -305,7 +305,6 @@ UserManager::UserError UserManager::setUserScopes(const QString &username, Types } } - QString scopesString = Types::scopesToStringList(scopes).join(','); QString allowedThingIdsString = Types::thingIdsToStringList(thingIds).join(',');