Share link: Fix parsing integer ids #5777
authorChristian Kamm <mail@ckamm.de>
Thu, 18 May 2017 10:41:28 +0000 (12:41 +0200)
committerMarkus Goetz <markus@woboq.com>
Mon, 22 May 2017 08:54:30 +0000 (10:54 +0200)
Older ownCloud servers like 8.2.0 used to use integer ids.

This broke when switching to QJson because toString() on JSON
values is strict and returns "" for integers.

src/gui/sharemanager.cpp

index cc8233289ef916fa8b93a838132fc126b078e85e..10d13a06772eabdcda04cfc4917cb97e5b1f852d 100644 (file)
@@ -395,7 +395,7 @@ QSharedPointer<LinkShare> ShareManager::parseLinkShare(const QJsonObject &data)
     }
 
     return QSharedPointer<LinkShare>(new LinkShare(_account,
-        data.value("id").toString(),
+        data.value("id").toVariant().toString(), // "id" used to be an integer, support both
         data.value("path").toString(),
         data.value("name").toString(),
         data.value("token").toString(),
@@ -412,7 +412,7 @@ QSharedPointer<Share> ShareManager::parseShare(const QJsonObject &data)
         (Sharee::Type)data.value("share_type").toInt()));
 
     return QSharedPointer<Share>(new Share(_account,
-        data.value("id").toString(),
+        data.value("id").toVariant().toString(), // "id" used to be an integer, support both
         data.value("path").toString(),
         (Share::ShareType)data.value("share_type").toInt(),
         (Share::Permissions)data.value("permissions").toInt(),