loleaflet/js/global.js |   11 +++++++++--
 wsd/LOOLWSD.cpp        |    6 +++---
 2 files changed, 12 insertions(+), 5 deletions(-)

New commits:
commit 4513318e58ed22709637374918fec3a95ad5dcab
Author:     Ashod Nakashian <ashod.nakash...@collabora.co.uk>
AuthorDate: Mon Jun 1 08:18:13 2020 -0400
Commit:     Ashod Nakashian <ashnak...@gmail.com>
CommitDate: Tue Jun 2 20:05:19 2020 +0200

    wsd: leaflet: fix reuse_cookies support
    
    reuse_cookies is now always encoded in the URL.
    
    And, there is no need for the WOPISrc in the three cases
    in this patch, and by passing the DocumentURI proper
    (without /ws?WOPISrc=...) ensures that all query-params
    in the DocumentURI are properly processed.
    
    This fixes the reuse_cookies regression where it
    wasn't passed to WOPI requests.
    
    Change-Id: I8dccfb09a7b4102d10c1aef24f43b699a07bfed8
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/95293
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js
index 20757e2a5..1c951b089 100644
--- a/loleaflet/js/global.js
+++ b/loleaflet/js/global.js
@@ -653,9 +653,16 @@
                else if (global.accessHeader !== '') {
                        wopiParams = { 'access_header': global.accessHeader };
                }
-               else if (global.reuseCookies !== '') {
-                       wopiParams = { 'reuse_cookies': global.reuseCookies };
+
+               if (global.reuseCookies !== '') {
+                       if (wopiParams) {
+                               wopiParams['reuse_cookies'] = 
global.reuseCookies;
+                       }
+                       else {
+                               wopiParams = { 'reuse_cookies': 
global.reuseCookies };
+                       }
                }
+
                if (wopiParams) {
                        docParams = Object.keys(wopiParams).map(function(key) {
                                return encodeURIComponent(key) + '=' + 
encodeURIComponent(wopiParams[key]);
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 51bd22e38..db7bfbaef 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -2810,7 +2810,7 @@ private:
                 const std::string formName(form.get("name"));
 
                 // Validate the docKey
-                const std::string decodedUri = 
requestDetails.getLegacyDocumentURI();
+                const std::string decodedUri = requestDetails.getDocumentURI();
                 const std::string docKey = 
DocumentBroker::getDocKey(DocumentBroker::sanitizeURI(decodedUri));
 
                 std::unique_lock<std::mutex> docBrokersLock(DocBrokersMutex);
@@ -2846,7 +2846,7 @@ private:
             // TODO: Check that the user in question has access to this file!
 
             // 1. Validate the dockey
-            const std::string decodedUri = 
requestDetails.getLegacyDocumentURI();
+            const std::string decodedUri = requestDetails.getDocumentURI();
             const std::string docKey = 
DocumentBroker::getDocKey(DocumentBroker::sanitizeURI(decodedUri));
 
             std::unique_lock<std::mutex> docBrokersLock(DocBrokersMutex);
@@ -3025,7 +3025,7 @@ private:
                                SocketDisposition& disposition,
                                const std::shared_ptr<StreamSocket>& socket)
     {
-        const std::string url = requestDetails.getLegacyDocumentURI();
+        const std::string url = requestDetails.getDocumentURI();
         assert(socket && "Must have a valid socket");
 
         // must be trace for anonymization
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to