From c91de092e5f9071045e5694ad47ba12e7b7146f3 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 21 Jan 2015 15:07:24 +0100 Subject: [PATCH] Setup wizard: Fix the http fallback logic Also don't allow to go back from the advanced settings page because this break everything --- src/gui/owncloudsetupwizard.cpp | 13 ++++++++----- src/gui/wizard/owncloudwizard.cpp | 6 ++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp index 0690cbdd0..a4ee4b5bc 100644 --- a/src/gui/owncloudsetupwizard.cpp +++ b/src/gui/owncloudsetupwizard.cpp @@ -220,16 +220,17 @@ void OwncloudSetupWizard::testOwnCloudConnect() bool OwncloudSetupWizard::checkDowngradeAdvised(QNetworkReply* reply) { - if(reply->url().scheme() == QLatin1String("https")) { + qWarning() << reply->url() << reply->errorString() << reply->error() << reply->hasRawHeader("Strict-Transport-Security"); + + if(reply->url().scheme() != QLatin1String("https")) { return false; } switch (reply->error()) { case QNetworkReply::NoError: case QNetworkReply::ContentNotFoundError: - case QNetworkReply::ConnectionRefusedError: + case QNetworkReply::AuthenticationRequiredError: case QNetworkReply::HostNotFoundError: - case QNetworkReply::TimeoutError: return false; default: break; @@ -251,8 +252,10 @@ void OwncloudSetupWizard::slotConnectionCheck(QNetworkReply* reply) break; default: _ocWizard->show(); - _ocWizard->back(); - _ocWizard->displayError(reply->errorString(), checkDowngradeAdvised(reply)); + if (_ocWizard->currentId() == WizardCommon::Page_ShibbolethCreds) { + _ocWizard->back(); + } + _ocWizard->displayError(reply->errorString(), _ocWizard->currentId() == WizardCommon::Page_ServerSetup && checkDowngradeAdvised(reply)); break; } } diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp index ae3ccd2fd..6e04c17e8 100644 --- a/src/gui/wizard/owncloudwizard.cpp +++ b/src/gui/wizard/owncloudwizard.cpp @@ -180,6 +180,12 @@ void OwncloudWizard::slotCurrentPageChanged( int id ) } setOption(QWizard::HaveCustomButton1, id == WizardCommon::Page_AdvancedSetup); + + if (id == WizardCommon::Page_AdvancedSetup) { + // Going back from this page messes the state as the account is created already + button(QWizard::BackButton)->setDisabled(true); + } + } void OwncloudWizard::displayError( const QString& msg, bool retryHTTPonly )