From 624b0fb488782d42872c9c1e8abdc4af34383018 Mon Sep 17 00:00:00 2001 From: Rashesh Date: Fri, 24 Jan 2025 17:18:25 +0530 Subject: [PATCH] wsd: presets: pass xcu as json array instead of json object - this is done to make the json format consistent - json format after this change ```json { "autotext": [ { "stamp": "\"780e98110c\"", "uri": "https://localhost:9980/wopi/settings/home/rashesh/work/collabora/online/master//test/data/presets/user/autotextuser.bau" } ], "browsersetting": [ { "stamp": "\"780e98110c\"", "uri": "https://localhost:9980/wopi/settings/home/rashesh/work/collabora/online/master/test/data/presets/user/browsersetting.json" } ], "kind": "user", "wordbook": [ { "stamp": "\"780e98110c\"", "uri": "https://localhost:9980/wopi/settings/home/rashesh/work/collabora/online/master//test/data/presets/user/dictionaryuser.dic" } ], "xcu": [ { "stamp": "\"780e98110c\"", "uri": "https://localhost:9980/wopi/settings/home/rashesh/work/collabora/online/master//test/data/presets/user/configuser.xcu" } ] } ``` Signed-off-by: Rashesh Change-Id: I37058c647eea6f6d17ef76cde99c79a73273ea53 --- wsd/DocumentBroker.cpp | 28 ++++++---------------------- wsd/FileServer.cpp | 4 +++- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index ac1f3dafa0d76..aa5d26115a0db 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -1569,8 +1569,11 @@ class PresetsInstallTask Poco::Path destDir(_presetsPath, groupName); Poco::File(destDir).createDirectories(); - std::string fileName = - Poco::Path(destDir.toString(), Uri::getFilenameWithExtFromURL(uri)).toString(); + std::string fileName; + if (groupName == "xcu") + fileName = Poco::Path(destDir.toString(), "config.xcu").toString(); + else + fileName = Poco::Path(destDir.toString(), Uri::getFilenameWithExtFromURL(uri)).toString(); queries.emplace_back(uri, stamp, fileName); } @@ -1595,25 +1598,6 @@ class PresetsInstallTask queries.emplace_back(uri, stamp, "browsersetting.json"); } - void addXcu(Poco::JSON::Object::Ptr settings, std::vector& queries) - { - if (!settings->has("xcu")) - return; - - auto xcu = settings->get("xcu").extract(); - if (xcu.isNull()) - return; - - const std::string uri = JsonUtil::getJSONValue(xcu, "uri"); - const std::string stamp = JsonUtil::getJSONValue(xcu, "stamp"); - - Poco::Path destDir(_presetsPath, "xcu"); - Poco::File(destDir).createDirectories(); - std::string fileName = Poco::Path(destDir, "config.xcu").toString(); - - queries.emplace_back(uri, stamp, fileName); - } - public: PresetsInstallTask(SocketPoll& poll, const std::string& configId, const std::string& presetsPath, @@ -1649,7 +1633,7 @@ class PresetsInstallTask addBrowserSetting(settings, presets); addGroup(settings, "autotext", presets); addGroup(settings, "wordbook", presets); - addXcu(settings, presets); + addGroup(settings, "xcu", presets); } Cache::supplyConfigFiles(_configId, presets); diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp index 313db9d9275c5..c75c35cff1f6b 100644 --- a/wsd/FileServer.cpp +++ b/wsd/FileServer.cpp @@ -581,6 +581,7 @@ bool FileServerRequestHandler::isAdminLoggedIn(const HTTPRequest& request, http: Poco::JSON::Array::Ptr configAutoTexts = new Poco::JSON::Array(); Poco::JSON::Array::Ptr configDictionaries = new Poco::JSON::Array(); + Poco::JSON::Array::Ptr configXcu = new Poco::JSON::Array(); for (const auto& item : items) { Poco::JSON::Object::Ptr configEntry = new Poco::JSON::Object(); @@ -596,10 +597,11 @@ bool FileServerRequestHandler::isAdminLoggedIn(const HTTPRequest& request, http: else if (item.first == "wordbook") configDictionaries->add(configEntry); else if (item.first == "xcu") - configInfo->set("xcu", configEntry); + configXcu->add(configEntry); } configInfo->set("autotext", configAutoTexts); configInfo->set("wordbook", configDictionaries); + configInfo->set("xcu", configXcu); if (serveBrowserSetttings) {