kit/ChildSession.cpp               |    8 +++++---
 loleaflet/css/toolbar.css          |    1 +
 loleaflet/html/loleaflet.html.m4   |    6 ++++--
 loleaflet/images/close_toolbar.svg |    1 +
 loleaflet/js/toolbar.js            |    3 ++-
 loleaflet/src/control/Signing.js   |   21 +++++++++++++++++++--
 loolwsd.xml.in                     |    4 ++--
 wsd/FileServer.cpp                 |    8 +++-----
 8 files changed, 37 insertions(+), 15 deletions(-)

New commits:
commit 7a8c5c072f4e70428deef923a2e78ab104b757b2
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Thu Nov 29 22:34:14 2018 +0100
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Thu Nov 29 22:46:14 2018 +0100

    Add "close" function to the document signing info bar
    
    Change-Id: I24e967de5c2a975ec2f1321c02712761c6d48de3
    Reviewed-on: https://gerrit.libreoffice.org/64299
    Reviewed-by: Tomaž Vajngerl <[email protected]>
    Tested-by: Tomaž Vajngerl <[email protected]>

diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index daef2d11c..c7c01fad3 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -584,6 +584,7 @@ button.leaflet-control-search-next
 .w2ui-icon.users{ background: url('images/contacts-dark.svg') no-repeat center 
!important; }
 .w2ui-icon.fullscreen{ background: url('images/lc_fullscreen.svg') no-repeat 
center !important; }
 .w2ui-icon.closemobile{ background: url('images/lc_closedocmobile.svg') 
no-repeat center !important; }
+.w2ui-icon.closetoolbar{ background: url('images/close_toolbar.svg') no-repeat 
center !important; }
 
 .inserttable-pop {
     z-index: 1000;
diff --git a/loleaflet/images/close_toolbar.svg 
b/loleaflet/images/close_toolbar.svg
new file mode 100644
index 000000000..68b09bb18
--- /dev/null
+++ b/loleaflet/images/close_toolbar.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg";><g fill="none" 
stroke="#5f5f5f" stroke-linecap="round" stroke-linejoin="round" 
stroke-width="2"><path d="m4 20 16-16"/><path d="m20 
20-16-15.9999998"/></g></svg>
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index 4e1b26591..9485d77cc 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -952,9 +952,10 @@ function initNormalToolbar(toolItems) {
                                {type: 'break' },
                                {type: 'menu', id: 'passport', caption: 
_('Select passport'), items: []},
                                {type: 'html', id: 'current-passport', html: 
'Passport: N/A'},
-                               {type: 'break' },
+                               {type: 'spacer'},
                                {type: 'button',  id: 'logout',  caption: 
'Logout', img: '', hint: _('Logout')},
                                {type: 'button',  id: 'login',  caption: 
'Login', img: '', hint: _('Login')},
+                               {type: 'button',  id: 'close', img: 
'closetoolbar', hint: _('Close')},
                        ],
                        onClick: function (e) {
                                onClick(e, e.target);
diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js
index 47c6dbfba..fcfcd970b 100644
--- a/loleaflet/src/control/Signing.js
+++ b/loleaflet/src/control/Signing.js
@@ -9,6 +9,8 @@ var library = null;
 var identity = null;
 var currentPassport = null;
 
+var oldtoolbarSize = null;
+
 function isSuccess(result) {
        return result.code == '200';
 }
@@ -227,8 +229,15 @@ function vereignRestoreIdentity() {
 L.Map.include({
        showSignDocument: function() {
                this.initializeLibrary();
+               oldtoolbarSize = $('#document-container').css('top');
 
-               $('#document-container').css('top', '100px');
+               $('#document-container').css('top', '110px');
+       },
+       hideSignDocument: function() {
+               library = null;
+               identity = null;
+               currentPassport = null;
+               $('#document-container').css('top', oldtoolbarSize);
        },
        signingInitializeBar: function() {
                adjustUIState();
@@ -377,7 +386,10 @@ L.Map.include({
                }
        },
        handleSigningClickEvent: function(id, item) {
-               if (id === 'login') {
+               if (id === 'close') {
+                       this.hideSignDocument();
+               }
+               else if (id === 'login') {
                        this.signingLogin();
                }
                else if (id === 'logout') {
commit 2861299c7723a259701800b8c80c398898f92d54
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Thu Nov 29 22:16:41 2018 +0100
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Thu Nov 29 22:46:07 2018 +0100

    make vereign server configurable, dynamically show sign. infobar
    
    document_signing_url in loolwsd now accepts a vereign server URL
    endpoint. If not provided, the signing functionallity won't be
    available.
    
    The document signing infobar is now shown dynamically so by
    default it is not shown, but when the users clicks in menu the
    "sign document", the infobar is shown (the document-content is
    css "top" value is adjusted via JQuery).
    
    Change-Id: I9d5f6b68ba3612eeeb9de28c9c0333b4d1bf41d8
    Reviewed-on: https://gerrit.libreoffice.org/64298
    Reviewed-by: Tomaž Vajngerl <[email protected]>
    Tested-by: Tomaž Vajngerl <[email protected]>

diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4
index a1b9defdb..3e46444f0 100644
--- a/loleaflet/html/loleaflet.html.m4
+++ b/loleaflet/html/loleaflet.html.m4
@@ -101,6 +101,9 @@ ifelse(MOBILEAPP,[true],
     </table>
 
     <!--%DOCUMENT_SIGNING_DIV%-->
+    <script>
+      window.documentSigningURL = '%DOCUMENT_SIGNING_URL%';
+    </script>
 
     <input id="insertgraphic" type="file" style="position: fixed; top: -100em">
     <input id="document-name-input" type="text" disabled="true"/>
@@ -111,8 +114,7 @@ ifelse(MOBILEAPP,[true],
 
     <div id="spreadsheet-row-column-frame"></div>
 
-    ifelse(MOBILEAPP,[true],[<div 
id="document-container">],[<!--%DOCUMENT_CONTAINER%-->])
-
+    <div id="document-container">
       <div id="map"></div>
     </div>
     <div id="spreadsheet-toolbar"></div>
diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js
index dc1341de2..47c6dbfba 100644
--- a/loleaflet/src/control/Signing.js
+++ b/loleaflet/src/control/Signing.js
@@ -9,8 +9,6 @@ var library = null;
 var identity = null;
 var currentPassport = null;
 
-var vereignURL = 'https://integration2.vereign.com';
-
 function isSuccess(result) {
        return result.code == '200';
 }
@@ -229,6 +227,8 @@ function vereignRestoreIdentity() {
 L.Map.include({
        showSignDocument: function() {
                this.initializeLibrary();
+
+               $('#document-container').css('top', '100px');
        },
        signingInitializeBar: function() {
                adjustUIState();
@@ -255,6 +255,7 @@ L.Map.include({
                var filename = 'fileId'; // need to read the filename
 
                library.getPassports(filename).then(function(result) {
+                       var vereignURL = window.documentSigningURL == null ? '' 
: window.documentSigningURL;
                        if (isSuccess(result)) {
                                var resultArray = result.data;
                                for (var i = 0; i < resultArray.length; i++) {
@@ -338,6 +339,10 @@ L.Map.include({
                });
        },
        initializeLibrary: function() {
+               var vereignURL = window.documentSigningURL == null ? '' : 
window.documentSigningURL;
+               if (vereignURL.length == 0)
+                       return;
+
                setupViamAPI(
                        'signdocument-iframe-content',
                        {
diff --git a/loolwsd.xml.in b/loolwsd.xml.in
index 7ba63f0a0..0ce943bbd 100644
--- a/loolwsd.xml.in
+++ b/loolwsd.xml.in
@@ -17,7 +17,7 @@
     <num_prespawn_children desc="Number of child processes to keep started in 
advance and waiting for new clients." type="uint" 
default="1">1</num_prespawn_children>
     <per_document desc="Document-specific settings, including LO Core 
settings.">
         <max_concurrency desc="The maximum number of threads to use while 
processing a document." type="uint" default="4">4</max_concurrency>
-        <document_signing desc="If true show the document signing menu item." 
type="bool" default="false">false</document_signing>
+        <document_signing_url desc="The endpoint URL of signing server, if 
empty the document signing is disabled" type="string" 
default=""></document_signing_url>
        <redlining_as_comments desc="If true show red-lines as comments" 
type="bool" default="true">true</redlining_as_comments>
         <idle_timeout_secs desc="The maximum number of seconds before 
unloading an idle document. Defaults to 1 hour." type="uint" 
default="3600">3600</idle_timeout_secs>
         <!-- Idle save and auto save are checked every 30 seconds -->
@@ -28,7 +28,7 @@
         <limit_stack_mem_kb desc="The maximum stack size allowed to each 
document process. 0 for unlimited." type="uint">8000</limit_stack_mem_kb>
         <limit_file_size_mb desc="The maximum file size allowed to each 
document process to write. 0 for unlimited." type="uint">0</limit_file_size_mb>
         <limit_num_open_files desc="The maximum number of files allowed to 
each document process to open. 0 for unlimited." 
type="uint">0</limit_num_open_files>
-       <limit_load_secs desc="Maximum number of seconds to wait for a document 
load to succeed. 0 for unlimited." type="uint" 
default="100">100</limit_load_secs>
+    <limit_load_secs desc="Maximum number of seconds to wait for a document 
load to succeed. 0 for unlimited." type="uint" 
default="100">100</limit_load_secs>
     </per_document>
 
     <per_view desc="View-specific settings.">
diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp
index 318a9ff98..cd799929f 100644
--- a/wsd/FileServer.cpp
+++ b/wsd/FileServer.cpp
@@ -640,15 +640,13 @@ void FileServerRequestHandler::preprocessFile(const 
HTTPRequest& request, Poco::
 
     // Customization related to document signing.
     std::string documentSigningDiv;
-    std::string documentContainerTop("<div id=\"document-container\">");
-    const auto documentSigning = 
config.getBool("per_document.document_signing", false);
-    if (documentSigning)
+    const std::string documentSigningURL = 
config.getString("per_document.document_signing_url", "");
+    if (!documentSigningURL.empty())
     {
         documentSigningDiv = "<div id=\"document-signing-bar\"></div>";
-        documentContainerTop = "<div id=\"document-container\" style=\"top: 
100px;\">";
     }
     Poco::replaceInPlace(preprocess, 
std::string("<!--%DOCUMENT_SIGNING_DIV%-->"), documentSigningDiv);
-    Poco::replaceInPlace(preprocess, 
std::string("<!--%DOCUMENT_CONTAINER%-->"), documentContainerTop);
+    Poco::replaceInPlace(preprocess, std::string("%DOCUMENT_SIGNING_URL%"), 
documentSigningURL);
 
     const auto loleafletLogging = config.getString("loleaflet_logging", 
"false");
     Poco::replaceInPlace(preprocess, std::string("%LOLEAFLET_LOGGING%"), 
loleafletLogging);
commit 2645829f407ea94bf13f76bdc2d40306ed351445
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Thu Nov 29 22:10:47 2018 +0100
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Thu Nov 29 22:46:00 2018 +0100

    don't assert in this case, better to return
    
    Change-Id: I38cef1185bef0de67bbb579c5c64e2697f953b0b
    Reviewed-on: https://gerrit.libreoffice.org/64297
    Reviewed-by: Tomaž Vajngerl <[email protected]>
    Tested-by: Tomaž Vajngerl <[email protected]>

diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index e5c758789..114a89a96 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -1367,10 +1367,12 @@ bool ChildSession::signDocumentContent(const char* 
buffer, int length, const std
     Poco::JSON::Parser parser;
     Poco::JSON::Object::Ptr root = 
parser.parse(json).extract<Poco::JSON::Object::Ptr>();
 
-    for (auto& chainPtr : *root->getArray("chain"))
+    for (auto& rChainPtr : *root->getArray("chain"))
     {
-        assert(chainPtr.isString());
-        std::string chainCertificate = chainPtr;
+        if (!rChainPtr.isString())
+            return false;
+
+        std::string chainCertificate = rChainPtr;
         std::vector<unsigned char> binaryChainCertificate = 
decodeBase64(extractCertificate(chainCertificate));
 
         bResult = getLOKitDocument()->addCertificate(
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to