void AbstractCredentialsWizardPage::cleanupPage() { // Reset the credentials when the 'Back' button is used. AccountPtr account = static_cast<OwncloudWizard *>(wizard())->account(); AbstractCredentials *creds = account->credentials(); if (creds && !qobject_cast<DummyCredentials *>(creds)) { account->setCredentials(new DummyCredentials); } }
void AbstractCredentialsWizardPage::cleanupPage() { // Reset the credentials when the 'Back' button is used. // Unfortunately this code is also run when the Wizard finishes // prematurely with 'Skip Folder Configuration'. Therefore we need to // avoid resetting credentials on active accounts. AccountPtr account = static_cast<OwncloudWizard*>(wizard())->account(); if (account == AccountManager::instance()->account()) return; AbstractCredentials *creds = account->credentials(); if (creds) { if (!creds->inherits("DummyCredentials")) { account->setCredentials(CredentialsFactory::create("dummy")); } } }
void OwncloudSetupWizard::startWizard() { FolderMan *folderMan = FolderMan::instance(); AccountPtr account = Account::create(); account->setCredentials(CredentialsFactory::create("dummy")); account->setSslErrorHandler(new SslDialogErrorHandler); _ocWizard->setAccount(account); _ocWizard->setOCUrl(account->url().toString()); _remoteFolder = Theme::instance()->defaultServerFolder(); // remoteFolder may be empty, which means / QString localFolder = Theme::instance()->defaultClientFolder(); // if its a relative path, prepend with users home dir, otherwise use as absolute path if( !QDir(localFolder).isAbsolute() ) { localFolder = QDir::homePath() + QDir::separator() + localFolder; } _ocWizard->setProperty("oldLocalFolder", localFolder); _ocWizard->setProperty("localFolder", localFolder); // remember the local folder to compare later if it changed, but clean first QString lf = QDir::fromNativeSeparators(localFolder); if( !lf.endsWith(QLatin1Char('/'))) { lf.append(QLatin1Char('/')); } _initLocalFolder = lf; _ocWizard->setRemoteFolder(_remoteFolder); _ocWizard->setStartId(WizardCommon::Page_ServerSetup); _ocWizard->restart(); _ocWizard->open(); _ocWizard->raise(); }
// also checks if an installation is valid and determines auth type in a second step void OwncloudSetupWizard::slotDetermineAuthType(const QString &urlString) { QString fixedUrl = urlString; QUrl url = QUrl::fromUserInput(fixedUrl); // fromUserInput defaults to http, not http if no scheme is specified if (!fixedUrl.startsWith("http://") && !fixedUrl.startsWith("https://")) { url.setScheme("https"); } AccountPtr account = _ocWizard->account(); account->setUrl(url); // Reset the proxy which might had been determined previously in ConnectionValidator::checkServerAndAuth() // when there was a previous account. account->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::DefaultProxy)); // Set fake credentials beforfe we check what credential it actually is. account->setCredentials(CredentialsFactory::create("dummy")); CheckServerJob *job = new CheckServerJob(_ocWizard->account(), this); job->setIgnoreCredentialFailure(true); connect(job, SIGNAL(instanceFound(QUrl,QVariantMap)), SLOT(slotOwnCloudFoundAuth(QUrl,QVariantMap))); connect(job, SIGNAL(instanceNotFound(QNetworkReply*)), SLOT(slotNoOwnCloudFoundAuth(QNetworkReply*))); connect(job, SIGNAL(timeout(const QUrl&)), SLOT(slotNoOwnCloudFoundAuthTimeout(const QUrl&))); job->setTimeout(10*1000); job->start(); }