Setup wizard: Fix the http fallback logic

Also don't allow to go back from the advanced settings page because
this break everything
This commit is contained in:
Olivier Goffart 2015-01-21 15:07:24 +01:00
parent 95f7e83c5c
commit c91de092e5
2 changed files with 14 additions and 5 deletions

View file

@ -220,16 +220,17 @@ void OwncloudSetupWizard::testOwnCloudConnect()
bool OwncloudSetupWizard::checkDowngradeAdvised(QNetworkReply* reply) 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; return false;
} }
switch (reply->error()) { switch (reply->error()) {
case QNetworkReply::NoError: case QNetworkReply::NoError:
case QNetworkReply::ContentNotFoundError: case QNetworkReply::ContentNotFoundError:
case QNetworkReply::ConnectionRefusedError: case QNetworkReply::AuthenticationRequiredError:
case QNetworkReply::HostNotFoundError: case QNetworkReply::HostNotFoundError:
case QNetworkReply::TimeoutError:
return false; return false;
default: default:
break; break;
@ -251,8 +252,10 @@ void OwncloudSetupWizard::slotConnectionCheck(QNetworkReply* reply)
break; break;
default: default:
_ocWizard->show(); _ocWizard->show();
_ocWizard->back(); if (_ocWizard->currentId() == WizardCommon::Page_ShibbolethCreds) {
_ocWizard->displayError(reply->errorString(), checkDowngradeAdvised(reply)); _ocWizard->back();
}
_ocWizard->displayError(reply->errorString(), _ocWizard->currentId() == WizardCommon::Page_ServerSetup && checkDowngradeAdvised(reply));
break; break;
} }
} }

View file

@ -180,6 +180,12 @@ void OwncloudWizard::slotCurrentPageChanged( int id )
} }
setOption(QWizard::HaveCustomButton1, id == WizardCommon::Page_AdvancedSetup); 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 ) void OwncloudWizard::displayError( const QString& msg, bool retryHTTPonly )