]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
AccountManager: do not load invalid account
authorOlivier Goffart <ogoffart@woboq.com>
Tue, 11 Oct 2016 09:46:51 +0000 (11:46 +0200)
committerOlivier Goffart <olivier@woboq.com>
Tue, 11 Oct 2016 12:27:14 +0000 (14:27 +0200)
Some tests (such as FolderManTest) can polute the config file with invalid
accounts.

(That's because most of the code, (even in libsync) always instentiate a ConfigFile)

src/gui/accountmanager.cpp

index 421ee0add82eb4f2e3cd04dba04f8d558101cbd6..70ec84cf079c3db56df1cb2aa1fe4c90d55f498e 100644 (file)
@@ -209,6 +209,13 @@ void AccountManager::saveAccountHelper(Account* acc, QSettings& settings, bool s
 
 AccountPtr AccountManager::loadAccountHelper(QSettings& settings)
 {
+    auto urlConfig = settings.value(QLatin1String(urlC));
+    if (!urlConfig.isValid()) {
+        // No URL probably means a corrupted entry in the account settings
+        qDebug() << "No URL for account " << settings.group();
+        return AccountPtr();
+    }
+
     auto acc = createAccount();
 
     QString authType = settings.value(QLatin1String(authTypeC)).toString();
@@ -220,7 +227,7 @@ AccountPtr AccountManager::loadAccountHelper(QSettings& settings)
         acc->setUrl(overrideUrl);
         authType = forceAuth;
     } else {
-        acc->setUrl(settings.value(QLatin1String(urlC)).toUrl());
+        acc->setUrl(urlConfig.toUrl());
     }
     acc->_serverVersion = settings.value(QLatin1String(serverVersionC)).toString();