void OwncloudShibbolethCredsPage::setupBrowser() { if (!_browser.isNull()) { return; } OwncloudWizard *ocWizard = qobject_cast<OwncloudWizard *>(wizard()); AccountPtr account = ocWizard->account(); // we need to reset the cookie jar to drop temporary cookies (like the shib cookie) // i.e. if someone presses "back" QNetworkAccessManager *qnam = account->networkAccessManager(); CookieJar *jar = new CookieJar; jar->restore(account->cookieJarPath()); // Implicitly deletes the old cookie jar, and reparents the jar qnam->setCookieJar(jar); _browser = new ShibbolethWebView(account); connect(_browser.data(), &ShibbolethWebView::shibbolethCookieReceived, this, &OwncloudShibbolethCredsPage::slotShibbolethCookieReceived, Qt::QueuedConnection); connect(_browser.data(), &ShibbolethWebView::rejected, this, &OwncloudShibbolethCredsPage::slotBrowserRejected); _browser->move(ocWizard->x(), ocWizard->y()); _browser->show(); _browser->setFocus(); }
// 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(); }