Marino Faggiana il y a 1 an
Parent
commit
f0a0895a95

+ 19 - 21
iOSClient/Data/NCManageDatabase+Share.swift

@@ -74,27 +74,6 @@ class tableShareV2: Object {
     }
 }
 
-extension tableShare {
-
-    var isAttributeDownloadEnabled: Bool {
-        if let attributes = attributes, let data = attributes.data(using: .utf8) {
-            do {
-                if let json = try JSONSerialization.jsonObject(with: data) as? [Dictionary<String, Any>] {
-                    for sub in json {
-                        let key = sub["key"] as? String
-                        let enabled = sub["enabled"] as? Bool
-                        let scope = sub["scope"] as? String
-                        if key == "download", scope == "permissions", let enabled = enabled {
-                            return enabled
-                        }
-                    }
-                }
-            } catch let error as NSError { print(error) }
-        }
-        return true
-    }
-}
-
 extension NCManageDatabase {
 
     func addShare(account: String, home: String, shares: [NKShare]) {
@@ -268,4 +247,23 @@ extension NCManageDatabase {
             return "[{\"scope\":\"permissions\",\"key\":\"download\",\"enabled\":false}]"
         }
     }
+
+    func isAttributeDownloadEnabled(attributes: String?) -> Bool {
+        if let attributes = attributes, let data = attributes.data(using: .utf8) {
+            do {
+                if let json = try JSONSerialization.jsonObject(with: data) as? [Dictionary<String, Any>] {
+                    for sub in json {
+                        let key = sub["key"] as? String
+                        let enabled = sub["enabled"] as? Bool
+                        let scope = sub["scope"] as? String
+                        if key == "download", scope == "permissions", let enabled = enabled {
+                            return enabled
+                        }
+                    }
+                }
+            } catch let error as NSError { print(error) }
+        }
+        return true
+    }
+
 }

+ 1 - 1
iOSClient/Share/Advanced/NCShareCells.swift

@@ -82,7 +82,7 @@ enum NCUserPermission: CaseIterable, NCPermission {
 
     func isOn(for share: NCTableShareable) -> Bool {
         if self == .download {
-            return share.isAttributeDownloadEnabled
+            return NCManageDatabase.shared.isAttributeDownloadEnabled(attributes: share.attributes)
         } else {
             return (share.permissions & permissionBitFlag) != 0
         }

+ 1 - 5
iOSClient/Share/NCShare+Helper.swift

@@ -25,9 +25,7 @@ import UIKit
 import NextcloudKit
 
 extension tableShare: NCTableShareable { }
-extension NKShare: NCTableShareable {
-    var isAttributeDownloadEnabled: Bool { return true }
-}
+extension NKShare: NCTableShareable { }
 
 protocol NCTableShareable: AnyObject {
     var shareType: Int { get set }
@@ -44,7 +42,6 @@ protocol NCTableShareable: AnyObject {
     var shareWithDisplayname: String { get set }
 
     var attributes: String? { get set }
-    var isAttributeDownloadEnabled: Bool { get }
 }
 
 extension NCTableShareable {
@@ -82,7 +79,6 @@ class NCTableShareOptions: NCTableShareable {
     var shareWithDisplayname: String = ""
 
     var attributes: String?
-    var isAttributeDownloadEnabled: Bool = true
 
     private init(shareType: Int, metadata: tableMetadata, password: String?) {
         if metadata.e2eEncrypted {