[Libreoffice-commits] core.git: Branch 'distro/cib/libreoffice-6-1' - dbaccess/source

Samuel Mehrbrodt (via logerrit) logerrit at kemper.freedesktop.org
Mon Apr 20 20:17:39 UTC 2020


 dbaccess/source/core/dataaccess/databasedocument.cxx |   91 -------------------
 1 file changed, 1 insertion(+), 90 deletions(-)

New commits:
commit 49b7bbf2147714a1ff433f3da02dd1c772710943
Author:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Mon Apr 20 16:43:48 2020 +0200
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Mon Apr 20 22:17:08 2020 +0200

    Revert "Related tdf#97694 Preserve macro signatures in Base"
    
    This reverts commit 8a7d8eeeb0ea75881913b7c672cb4bc5d8893114.
    
    Change-Id: Iaa15a4babd321f71aaed14fbb30f59947b5d23a8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92579
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx
index cc571a0a6457..eb20c56ed849 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.cxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.cxx
@@ -46,8 +46,6 @@
 #include <com/sun/star/io/XTruncate.hpp>
 #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 #include <com/sun/star/script/provider/theMasterScriptProviderFactory.hpp>
-#include <com/sun/star/security/DocumentDigitalSignatures.hpp>
-#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
 #include <com/sun/star/sdb/DatabaseContext.hpp>
 #include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
 #include <com/sun/star/task/XStatusIndicator.hpp>
@@ -72,7 +70,7 @@
 #include <comphelper/numberedcollection.hxx>
 #include <comphelper/property.hxx>
 #include <comphelper/storagehelper.hxx>
-#include <comphelper/processfactory.hxx>
+
 #include <connectivity/dbtools.hxx>
 
 #include <cppuhelper/exc_hlp.hxx>
@@ -80,9 +78,7 @@
 #include <framework/titlehelper.hxx>
 #include <unotools/saveopt.hxx>
 #include <tools/debug.hxx>
-#include <unotools/tempfile.hxx>
 #include <tools/diagnose_ex.h>
-#include <osl/file.hxx>
 #include <osl/diagnose.h>
 #include <vcl/errcode.hxx>
 
@@ -1029,22 +1025,6 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
         _rGuard.reset();
     }
 
-    bool bTryToPreserveScriptSignature = false;
-    utl::TempFile aTempFile;
-    aTempFile.EnableKillingFile();
-    OUString aTmpFileURL = aTempFile.GetURL();
-    if (m_pImpl->getScriptingSignatureState() == SignatureState::OK
-        || m_pImpl->getScriptingSignatureState() == SignatureState::NOTVALIDATED
-        || m_pImpl->getScriptingSignatureState() == SignatureState::INVALID)
-    {
-        bTryToPreserveScriptSignature = true;
-        // We need to first save the file (which removes the macro signature), then add the macro signature again.
-        // For that, we need a temporary copy of the original file.
-        osl::File::RC rc = osl::File::copy(m_pImpl->getDocFileLocation(), aTmpFileURL);
-        if (rc != osl::FileBase::E_None)
-            throw uno::RuntimeException("Could not create temp file");
-    }
-
     Reference< XStorage > xNewRootStorage;
         // will be non-NULL if our storage changed
 
@@ -1097,75 +1077,6 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
         Sequence< PropertyValue > aMediaDescriptor( lcl_appendFileNameToDescriptor( _rArguments, _rURL ) );
         impl_storeToStorage_throw( xCurrentStorage, aMediaDescriptor, _rGuard );
 
-        // Preserve script signature if the script has not changed
-        if (bTryToPreserveScriptSignature)
-        {
-            uno::Reference<security::XDocumentDigitalSignatures> xDDSigns;
-            try
-            {
-                OUString aODFVersion(
-                    comphelper::OStorageHelper::GetODFVersionFromStorage(xCurrentStorage));
-                xDDSigns = security::DocumentDigitalSignatures::createWithVersion(
-                    comphelper::getProcessComponentContext(), aODFVersion);
-
-                const OUString aScriptSignName
-                    = xDDSigns->getScriptingContentSignatureDefaultStreamName();
-
-                if (!aScriptSignName.isEmpty())
-                {
-                    Reference<XStorage> xReadOrig
-                        = comphelper::OStorageHelper::GetStorageOfFormatFromURL(
-                            ZIP_STORAGE_FORMAT_STRING, aTmpFileURL, ElementModes::READ);
-                    if (!xReadOrig.is())
-                        throw uno::RuntimeException("Could not read " + aTmpFileURL);
-                    uno::Reference<embed::XStorage> xMetaInf
-                        = xReadOrig->openStorageElement("META-INF", embed::ElementModes::READ);
-
-                    Reference<XStorage> xTarget
-                        = comphelper::OStorageHelper::GetStorageOfFormatFromURL(
-                            ZIP_STORAGE_FORMAT_STRING, _rURL, ElementModes::READWRITE);
-                    if (!xTarget.is())
-                        throw uno::RuntimeException("Could not read " + _rURL);
-                    uno::Reference<embed::XStorage> xTargetMetaInf
-                        = xTarget->openStorageElement("META-INF", embed::ElementModes::READWRITE);
-
-                    if (xMetaInf.is() && xTargetMetaInf.is())
-                    {
-                        xMetaInf->copyElementTo(aScriptSignName, xTargetMetaInf, aScriptSignName);
-
-                        uno::Reference<embed::XTransactedObject> xTransact(xTargetMetaInf,
-                                                                           uno::UNO_QUERY);
-                        if (xTransact.is())
-                            xTransact->commit();
-
-                        xTargetMetaInf->dispose();
-
-                        // now check the copied signature
-                        uno::Sequence<security::DocumentSignatureInformation> aInfos
-                            = xDDSigns->verifyScriptingContentSignatures(
-                                xTarget, uno::Reference<io::XInputStream>());
-                        SignatureState nState = DocumentSignatures::getSignatureState(aInfos);
-                        if (nState == SignatureState::OK || nState == SignatureState::NOTVALIDATED
-                            || nState == SignatureState::PARTIAL_OK)
-                        {
-                            // commit the ZipStorage from target medium
-                            xTransact.set(xTarget, uno::UNO_QUERY);
-                            if (xTransact.is())
-                                xTransact->commit();
-                        }
-                        else
-                        {
-                            SAL_WARN("dbaccess", "An invalid signature was copied!");
-                        }
-                    }
-                }
-            }
-            catch (uno::Exception&)
-            {
-                SAL_WARN("dbaccess", "Preserving macro signature failed!");
-            }
-        }
-
         // success - tell our impl
         m_pImpl->setDocFileLocation( _rURL );
         m_pImpl->setResource( _rURL, aMediaDescriptor );


More information about the Libreoffice-commits mailing list