Extended capabilities API
authorRoeland Jago Douma <rullzer@owncloud.com>
Tue, 6 Oct 2015 07:07:45 +0000 (09:07 +0200)
committerRoeland Jago Douma <rullzer@owncloud.com>
Wed, 14 Oct 2015 09:45:34 +0000 (11:45 +0200)
* Naming of capabilities is now a bit more consistent

src/gui/sharedialog.cpp
src/libsync/capabilities.cpp
src/libsync/capabilities.h

index bcfe1694ffc867bcf5e82ac585087b4aec13e093..f1775fedfdc783ebd5f551dfbd0e483bd048b1ff 100644 (file)
@@ -143,15 +143,15 @@ ShareDialog::ShareDialog(AccountPtr account, const QString &sharePath, const QSt
     // Parse capabilities
 
     // If password is enforced then don't allow users to disable it
-    if (_account->capabilities().publicLinkEnforcePassword()) {
+    if (_account->capabilities().sharePublicLinkEnforcePassword()) {
         _ui->checkBox_password->setEnabled(false);
     }
 
     // If expiredate is enforced do not allow disable and set max days
-    if (_account->capabilities().publicLinkEnforceExpireDate()) {
+    if (_account->capabilities().sharePublicLinkEnforceExpireDate()) {
         _ui->checkBox_expire->setEnabled(false);
         _ui->calendar->setMaximumDate(QDate::currentDate().addDays(
-            _account->capabilities().publicLinkExpireDateDays()
+            _account->capabilities().sharePublicLinkExpireDateDays()
             ));
     }
 }
@@ -466,7 +466,7 @@ void ShareDialog::slotCheckBoxShareLinkClicked()
          * Check the capabilities if the server requires a password for a share
          * Ask for it directly
          */
-        if (_account->capabilities().publicLinkEnforcePassword()) {
+        if (_account->capabilities().sharePublicLinkEnforcePassword()) {
             _pi_link->stopAnimation();
             _ui->checkBox_password->setChecked(true);
             _ui->checkBox_password->setEnabled(false);
index 5b826d7ffc3855d15c30c52f44c2192d59eb417a..e477b9f4356b6b809d5541dc902fb5a890877b9f 100644 (file)
@@ -23,21 +23,41 @@ Capabilities::Capabilities(const QVariantMap &capabilities)
 {
 }
 
-bool Capabilities::publicLinkEnforcePassword() const
+bool Capabilities::shareAPI() const
+{
+    if (_capabilities["files_sharing"].toMap().contains("api_enabled")) {
+        return _capabilities["files_sharing"].toMap()["api_enabled"].toBool();
+    } else {
+        // This was later added so if it is not present just assume the API is enabled.
+        return true;
+    }
+}
+
+bool Capabilities::sharePublicLink() const
+{
+    return _capabilities["files_sharing"].toMap()["public"].toMap()["enabled"].toBool();
+}
+
+bool Capabilities::sharePublicLinkEnforcePassword() const
 {
     return _capabilities["files_sharing"].toMap()["public"].toMap()["password"].toMap()["enforced"].toBool();
 }
 
-bool Capabilities::publicLinkEnforceExpireDate() const
+bool Capabilities::sharePublicLinkEnforceExpireDate() const
 {
     return _capabilities["files_sharing"].toMap()["public"].toMap()["expire_date"].toMap()["enforced"].toBool();
 }
 
-int Capabilities::publicLinkExpireDateDays() const
+int Capabilities::sharePublicLinkExpireDateDays() const
 {
     return _capabilities["files_sharing"].toMap()["public"].toMap()["expire_date"].toMap()["days"].toInt();
 }
 
+bool Capabilities::shareResharing() const
+{
+    return _capabilities["files_sharing"].toMap()["resharing"].toBool();
+}
+
 QStringList Capabilities::supportedChecksumTypes() const
 {
     return QStringList();
index eb385721e3894971eee999f0fe6f95b890c911a7..51fb8e7b79c453a2a09a4e712b095c8868242ea6 100644 (file)
@@ -32,9 +32,12 @@ class OWNCLOUDSYNC_EXPORT Capabilities {
 public:
     Capabilities(const QVariantMap &capabilities);
 
-    bool publicLinkEnforcePassword() const;
-    bool publicLinkEnforceExpireDate() const;
-    int  publicLinkExpireDateDays() const;
+    bool shareAPI() const;
+    bool sharePublicLink() const;
+    bool sharePublicLinkEnforcePassword() const;
+    bool sharePublicLinkEnforceExpireDate() const;
+    int  sharePublicLinkExpireDateDays() const;
+    bool shareResharing() const;
     QStringList supportedChecksumTypes() const;
 
 private: