[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - desktop/source
Tomaž Vajngerl
tomaz.vajngerl at collabora.co.uk
Thu Dec 8 10:06:25 UTC 2016
desktop/source/lib/lokinteractionhandler.cxx | 41 +++++++++++++++++++--------
1 file changed, 30 insertions(+), 11 deletions(-)
New commits:
commit 0543ac9016528aa9c49573b1b1115bb6fbddf0b4
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Wed Dec 7 16:06:26 2016 +0100
lokit: support password protected binary MS and OOXML documents
Change-Id: Id7fa1f428d07271e71f3df962bd6718a35372389
Reviewed-on: https://gerrit.libreoffice.org/31737
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/desktop/source/lib/lokinteractionhandler.cxx b/desktop/source/lib/lokinteractionhandler.cxx
index 961c999..bb32fff 100644
--- a/desktop/source/lib/lokinteractionhandler.cxx
+++ b/desktop/source/lib/lokinteractionhandler.cxx
@@ -35,6 +35,8 @@
#include <com/sun/star/ucb/InteractiveNetworkResolveNameException.hpp>
#include <com/sun/star/ucb/InteractiveNetworkWriteException.hpp>
+#include <com/sun/star/task/DocumentMSPasswordRequest2.hpp>
+
#define LOK_USE_UNSTABLE_API
#include <../../inc/lib/init.hxx>
@@ -243,20 +245,37 @@ bool LOKInteractionHandler::handleNetworkException(const uno::Sequence<uno::Refe
bool LOKInteractionHandler::handlePasswordRequest(const uno::Sequence<uno::Reference<task::XInteractionContinuation>> &rContinuations, const uno::Any &rRequest)
{
+ bool bPasswordRequestFound = false;
+ bool bIsRequestPasswordToModify = false;
+
+ OString sUrl;
+
task::DocumentPasswordRequest2 passwordRequest;
- if (!(rRequest >>= passwordRequest))
+ if (rRequest >>= passwordRequest)
+ {
+ bIsRequestPasswordToModify = passwordRequest.IsRequestPasswordToModify;
+ sUrl = passwordRequest.Name.toUtf8();
+ bPasswordRequestFound = true;
+ }
+
+ task::DocumentMSPasswordRequest2 passwordMSRequest;
+ if (rRequest >>= passwordMSRequest)
+ {
+ bIsRequestPasswordToModify = passwordMSRequest.IsRequestPasswordToModify;
+ sUrl = passwordMSRequest.Name.toUtf8();
+ bPasswordRequestFound = true;
+ }
+
+ if (!bPasswordRequestFound)
return false;
if (m_pLOKit->mpCallback &&
- m_pLOKit->hasOptionalFeature((passwordRequest.IsRequestPasswordToModify)
- ? LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY
- : LOK_FEATURE_DOCUMENT_PASSWORD))
+ m_pLOKit->hasOptionalFeature(bIsRequestPasswordToModify ? LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY
+ : LOK_FEATURE_DOCUMENT_PASSWORD))
{
- OString const url(passwordRequest.Name.toUtf8());
- m_pLOKit->mpCallback(passwordRequest.IsRequestPasswordToModify
- ? LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY
- : LOK_CALLBACK_DOCUMENT_PASSWORD,
- url.getStr(),
+ m_pLOKit->mpCallback(bIsRequestPasswordToModify ? LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY
+ : LOK_CALLBACK_DOCUMENT_PASSWORD,
+ sUrl.getStr(),
m_pLOKit->mpCallbackData);
// block until SetPassword is called
@@ -268,7 +287,7 @@ bool LOKInteractionHandler::handlePasswordRequest(const uno::Sequence<uno::Refer
{
if (m_usePassword)
{
- if (passwordRequest.IsRequestPasswordToModify)
+ if (bIsRequestPasswordToModify)
{
uno::Reference<task::XInteractionPassword2> const xIPW2(rContinuations[i], uno::UNO_QUERY);
xIPW2->setPasswordToModify(m_Password);
@@ -286,7 +305,7 @@ bool LOKInteractionHandler::handlePasswordRequest(const uno::Sequence<uno::Refer
}
else
{
- if (passwordRequest.IsRequestPasswordToModify)
+ if (bIsRequestPasswordToModify)
{
uno::Reference<task::XInteractionPassword2> const xIPW2(rContinuations[i], uno::UNO_QUERY);
xIPW2->setRecommendReadOnly(true);
More information about the Libreoffice-commits
mailing list