wsd/Storage.cpp | 47 ++++++++++++++++++++--------------------------- wsd/Storage.hpp | 6 ++++++ 2 files changed, 26 insertions(+), 27 deletions(-)
New commits: commit d4b71cb73d4f9ca081f62f1a137d9b0cec6ed6f6 Author: Michael Meeks <[email protected]> AuthorDate: Tue Nov 19 21:23:50 2019 +0000 Commit: Michael Meeks <[email protected]> CommitDate: Wed Nov 20 15:41:06 2019 +0000 Share code for reuse_cookies handling. Change-Id: I9e4d66f14b46284c8d4f33173f028f0bcea34be2 diff --git a/wsd/Storage.cpp b/wsd/Storage.cpp index 367770a6d..5569763ee 100644 --- a/wsd/Storage.cpp +++ b/wsd/Storage.cpp @@ -445,15 +445,8 @@ static void addStorageReuseCookie(Poco::Net::HTTPRequest& request, const std::st } } -} // anonymous namespace - -std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Authorization& auth) +std::string getReuseCookies(const Poco::URI &uriObject) { - // update the access_token to the one matching to the session - Poco::URI uriObject(getUri()); - auth.authorizeURI(uriObject); - const std::string uriAnonym = LOOLWSD::anonymizeUrl(uriObject.toString()); - std::string reuseStorageCookies; for (const auto& param : uriObject.getQueryParameters()) { @@ -463,6 +456,18 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au break; } } + return reuseStorageCookies; +} + +} // anonymous namespace + +std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Authorization& auth) +{ + // update the access_token to the one matching to the session + Poco::URI uriObject(getUri()); + auth.authorizeURI(uriObject); + const std::string uriAnonym = LOOLWSD::anonymizeUrl(uriObject.toString()); + std::string reuseStorageCookies = getReuseCookies(uriObject); LOG_DBG("Getting info for wopi uri [" << uriAnonym << "]."); @@ -671,15 +676,7 @@ std::string WopiStorage::loadStorageFileToLocal(const Authorization& auth, const uriObject.setPath(uriObject.getPath() + "/contents"); auth.authorizeURI(uriObject); - std::string reuseStorageCookies; - for (const auto& param : uriObject.getQueryParameters()) - { - if (param.first == "reuse_cookies") - { - reuseStorageCookies = param.second; - break; - } - } + std::string reuseStorageCookies = getReuseCookies(uriObject); Poco::URI uriObjectAnonym(getUri()); uriObjectAnonym.setPath(LOOLWSD::anonymizeUrl(uriObjectAnonym.getPath()) + "/contents"); @@ -775,15 +772,7 @@ StorageBase::SaveResult WopiStorage::saveLocalFileToStorage(const Authorization& uriObject.setPath(isSaveAs || isRename? uriObject.getPath(): uriObject.getPath() + "/contents"); auth.authorizeURI(uriObject); - std::string reuseStorageCookies; - for (const auto& param : uriObject.getQueryParameters()) - { - if (param.first == "reuse_cookies") - { - reuseStorageCookies = param.second; - break; - } - } + std::string reuseStorageCookies = getReuseCookies(uriObject); const std::string uriAnonym = LOOLWSD::anonymizeUrl(uriObject.toString()); commit 68d81dae49dfbe0b0351f625e4e7b5bf5ee031ec Author: Michael Meeks <[email protected]> AuthorDate: Tue Nov 19 20:54:29 2019 +0000 Commit: Michael Meeks <[email protected]> CommitDate: Wed Nov 20 15:41:06 2019 +0000 Read and store SupportsLocks property. Change-Id: Ic405dfa5f6e759937094835f41787fa2cbe29f49 diff --git a/wsd/Storage.cpp b/wsd/Storage.cpp index b6ca49e02..367770a6d 100644 --- a/wsd/Storage.cpp +++ b/wsd/Storage.cpp @@ -538,6 +538,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au bool userCanNotWriteRelative = true; bool enableInsertRemoteImage = false; bool enableShare = false; + bool supportsLocks = false; bool supportsRename = false; bool userCanRename = false; std::string hideUserList("false"); @@ -625,6 +626,7 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au JsonUtil::findJSONValue(object, "EnableInsertRemoteImage", enableInsertRemoteImage); JsonUtil::findJSONValue(object, "EnableShare", enableShare); JsonUtil::findJSONValue(object, "HideUserList", hideUserList); + JsonUtil::findJSONValue(object, "SupportsLocks", supportsLocks); JsonUtil::findJSONValue(object, "SupportsRename", supportsRename); JsonUtil::findJSONValue(object, "UserCanRename", userCanRename); bool booleanFlag = false; @@ -656,7 +658,8 @@ std::unique_ptr<WopiStorage::WOPIFileInfo> WopiStorage::getWOPIFileInfo(const Au enableOwnerTermination, disablePrint, disableExport, disableCopy, disableInactiveMessages, downloadAsPostMessage, userCanNotWriteRelative, enableInsertRemoteImage, enableShare, hideUserList, disableChangeTrackingShow, disableChangeTrackingRecord, - hideChangeTrackingControls, supportsRename, userCanRename, callDuration})); + hideChangeTrackingControls, supportsLocks, supportsRename, + userCanRename, callDuration})); } /// uri format: http://server/<...>/wopi*/files/<id>/content @@ -743,6 +746,7 @@ std::string WopiStorage::loadStorageFileToLocal(const Authorization& auth, const uriAnonym << "] -> " << getRootFilePathAnonym() << " in " << diff.count() << "s"); setLoaded(true); + // Now return the jailed path. return Poco::Path(getJailPath(), getFileInfo().getFilename()).toString(); } diff --git a/wsd/Storage.hpp b/wsd/Storage.hpp index 6bb57a72a..3632cd6f3 100644 --- a/wsd/Storage.hpp +++ b/wsd/Storage.hpp @@ -347,6 +347,7 @@ public: const TriState disableChangeTrackingShow, const TriState disableChangeTrackingRecord, const TriState hideChangeTrackingControls, + const bool supportsLocks, const bool supportsRename, const bool userCanRename, const std::chrono::duration<double> callDuration) @@ -374,6 +375,7 @@ public: _disableChangeTrackingShow(disableChangeTrackingShow), _disableChangeTrackingRecord(disableChangeTrackingRecord), _hideChangeTrackingControls(hideChangeTrackingControls), + _supportsLocks(supportsLocks), _supportsRename(supportsRename), _userCanRename(userCanRename), _callDuration(callDuration) @@ -427,6 +429,8 @@ public: bool getSupportsRename() const { return _supportsRename; } + bool getSupportsLocks() const { return _supportsLocks; } + bool getUserCanRename() const { return _userCanRename; } std::string& getHideUserList() { return _hideUserList; } @@ -492,6 +496,8 @@ public: TriState _disableChangeTrackingRecord; /// If we should hide change-tracking commands for this user. TriState _hideChangeTrackingControls; + /// If WOPI host supports locking + bool _supportsLocks; /// If WOPI host supports rename bool _supportsRename; /// If user is allowed to rename the document _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
