summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihai Varga <mihai.mv13@gmail.com>2014-07-31 11:41:20 +0300
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-12-15 11:23:26 +0100
commita3b93ed6d8adc562687cbe419a1006660926164b (patch)
treedb41c3f53e8fd3f67e263c9125d8e96b791a4ece
parent4998e6a361252529cabcaac37b0f03bbed173544 (diff)
OneDrive authentication fallback request handler
To fix build, squashed in: Author: Mihai Varga <mihai.mv13@gmail.com> Date: Sun Dec 14 12:11:29 2014 +0100 Added namespace for vcl::Window Change-Id: I136912073582c29f68b25787b69f7cc117fb4a6a
-rw-r--r--uui/source/iahndl-authentication.cxx23
-rw-r--r--uui/source/iahndl.cxx9
-rw-r--r--uui/source/iahndl.hxx6
3 files changed, 38 insertions, 0 deletions
diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx
index 81cd93a936da..fc5ea18bf85c 100644
--- a/uui/source/iahndl-authentication.cxx
+++ b/uui/source/iahndl-authentication.cxx
@@ -28,6 +28,7 @@
#include <com/sun/star/task/XInteractionPassword.hpp>
#include <com/sun/star/task/XInteractionPassword2.hpp>
#include <com/sun/star/task/XInteractionRetry.hpp>
+#include <com/sun/star/ucb/XInteractionAuthFallback.hpp>
#include <com/sun/star/ucb/XInteractionSupplyAuthentication2.hpp>
#include <com/sun/star/ucb/URLAuthenticationRequest.hpp>
@@ -39,6 +40,7 @@
#include <vcl/abstdlg.hxx>
#include <vcl/svapp.hxx>
+#include "authfallbackdlg.hxx"
#include "ids.hrc"
#include "getcontinuations.hxx"
#include "passwordcontainer.hxx"
@@ -744,4 +746,25 @@ UUIInteractionHelper::handlePasswordRequest(
return false;
}
+bool
+UUIInteractionHelper::handleAuthFallbackRequest( OUString & instructions,
+ OUString & url,
+ uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & rContinuations )
+{
+ vcl::Window * pParent = getParentProperty( );
+ AuthFallbackDlg *dlg = new AuthFallbackDlg( pParent, instructions, url );
+ int retCode = dlg->Execute( );
+ uno::Reference< task::XInteractionAbort > xAbort;
+ uno::Reference< ucb::XInteractionAuthFallback > xAuthFallback;
+ getContinuations(rContinuations, &xAbort, &xAuthFallback);
+
+ if( retCode == RET_OK && xAuthFallback.is( ) )
+ {
+ xAuthFallback->setCode( dlg->GetCode( ) );
+ xAuthFallback->select( );
+ }
+
+ return true;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index d3563d04f411..6178d5925f30 100644
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -41,6 +41,7 @@
#include <com/sun/star/task/XInteractionHandler2.hpp>
#include <com/sun/star/task/XInteractionRequest.hpp>
#include <com/sun/star/task/XInteractionRetry.hpp>
+#include <com/sun/star/ucb/AuthenticationFallbackRequest.hpp>
#include <com/sun/star/ucb/InteractiveAppException.hpp>
#include <com/sun/star/ucb/InteractiveLockingLockedException.hpp>
#include <com/sun/star/ucb/InteractiveLockingNotLockedException.hpp>
@@ -805,6 +806,14 @@ UUIInteractionHelper::handleRequest_impl(
if (!bObtainErrorStringOnly)
{
+ ucb::AuthenticationFallbackRequest anAuthFallbackRequest;
+ if ( aAnyRequest >>= anAuthFallbackRequest )
+ {
+ handleAuthFallbackRequest( anAuthFallbackRequest.instructions,
+ anAuthFallbackRequest.url, rRequest->getContinuations() );
+ return true;
+ }
+
if ( handleAuthenticationRequest( rRequest ) )
return true;
diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx
index 68e6b638bbe8..c207092a861b 100644
--- a/uui/source/iahndl.hxx
+++ b/uui/source/iahndl.hxx
@@ -285,6 +285,12 @@ private:
const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest >& i_rRequest,
const OUString& i_rServiceName
) const;
+
+ bool
+ handleAuthFallbackRequest(
+ OUString & instructions,
+ OUString & url,
+ Continuations const & rContinuations );
};
class ErrorResource: private Resource