marinofaggiana 4 жил өмнө
parent
commit
32ce897638

+ 15 - 9
iOSClient/Database/NCElementsJSON.swift

@@ -29,16 +29,22 @@ import Foundation
         return instance
     }()
     
-    @objc public lazy var capabilitiesVersionString:        Array = ["ocs","data","version","string"]
-    @objc public let capabilitiesVersionMajor:              Array = ["ocs","data","version","major"]
+    @objc public lazy var capabilitiesVersionString:            Array = ["ocs","data","version","string"]
+    @objc public let capabilitiesVersionMajor:                  Array = ["ocs","data","version","major"]
     
-    @objc public let capabilitiesThemingColor:              Array = ["ocs","data","capabilities","theming","color"]
-    @objc public let capabilitiesThemingColorElement:       Array = ["ocs","data","capabilities","theming","color-element"]
-    @objc public let capabilitiesThemingColorText:          Array = ["ocs","data","capabilities","theming","color-text"]
-    @objc public let capabilitiesThemingName:               Array = ["ocs","data","capabilities","theming","name"]
-    @objc public let capabilitiesThemingSlogan:             Array = ["ocs","data","capabilities","theming","slogan"]
+    @objc public let capabilitiesFileSharingApiEnabled:         Array = ["ocs","data","capabilities","files_sharing","api_enabled"]
+    @objc public let capabilitiesFileSharingPubPasswdEnforced:  Array = ["ocs","data","capabilities","files_sharing","public","password","enforced"]
+
+    @objc public let capabilitiesThemingColor:                  Array = ["ocs","data","capabilities","theming","color"]
+    @objc public let capabilitiesThemingColorElement:           Array = ["ocs","data","capabilities","theming","color-element"]
+    @objc public let capabilitiesThemingColorText:              Array = ["ocs","data","capabilities","theming","color-text"]
+    @objc public let capabilitiesThemingName:                   Array = ["ocs","data","capabilities","theming","name"]
+    @objc public let capabilitiesThemingSlogan:                 Array = ["ocs","data","capabilities","theming","slogan"]
        
-    @objc public let capabilitiesWebDavRoot:                Array = ["ocs","data","capabilities","core","webdav-root"]
+    @objc public let capabilitiesWebDavRoot:                    Array = ["ocs","data","capabilities","core","webdav-root"]
+    
+    @objc public let capabilitiesE2EEEnabled:                   Array = ["ocs","data","capabilities","end-to-end-encryption","enabled"]
+    @objc public let capabilitiesE2EEApiVersion:                Array = ["ocs","data","capabilities","end-to-end-encryption","api-version"]
     
-    @objc public let capabilitiesE2EEEnabled:               Array = ["ocs","data","capabilities","end-to-end-encryption","enabled"]
+    @objc public let capabilitiesHWCEnabled:                    Array = ["ocs","data","capabilities","handwerkcloud","enabled"]
 }

+ 0 - 58
iOSClient/Database/NCManageDatabase.swift

@@ -974,64 +974,6 @@ class NCManageDatabase: NSObject {
         return nil
     }
     
-    @objc func getCapabilitiesE2EEVersion(account: String) -> Int {
-
-        let realm = try! Realm()
-        realm.refresh()
-        
-        guard let result = realm.objects(tableCapabilities.self).filter("account == %@", account).first else {
-            return 0
-        }
-        guard let jsondata = result.jsondata else {
-            return 0
-        }
-        
-        let json = JSON(jsondata)
-        let dataCapabilities = json["ocs"]["data"]["capabilities"]
-
-        if let result = dataCapabilities["end-to-end-encryption"]["api-version"].string {
-            return Int(result)!
-        } else {
-            return 0
-        }
-    }
-    
-    @objc func getCapabilitiesHandwerkcloudEnabled(account: String) -> Bool {
-
-        let realm = try! Realm()
-        realm.refresh()
-        
-        guard let result = realm.objects(tableCapabilities.self).filter("account == %@", account).first else {
-            return false
-        }
-        guard let jsondata = result.jsondata else {
-            return false
-        }
-        
-        let json = JSON(jsondata)
-        let dataCapabilities = json["ocs"]["data"]["capabilities"]
-
-        return dataCapabilities["handwerkcloud"]["enabled"].boolValue
-    }
-    
-    @objc func getCapabilitiesFilesSharingEnabled(account: String) -> Bool {
-
-        let realm = try! Realm()
-        realm.refresh()
-        
-        guard let result = realm.objects(tableCapabilities.self).filter("account == %@", account).first else {
-            return false
-        }
-        guard let jsondata = result.jsondata else {
-            return false
-        }
-        
-        let json = JSON(jsondata)
-        let dataCapabilities = json["ocs"]["data"]["capabilities"]
-
-        return dataCapabilities["files_sharing"]["api_enabled"].boolValue
-    }
-    
     @objc func getCapabilitiesFilesSharingPublicPasswordEnforced(account: String) -> Bool {
 
         let realm = try! Realm()

+ 2 - 1
iOSClient/Networking/CCNetworking.m

@@ -707,7 +707,8 @@
             }
             
             addObject.serverUrl = metadata.serverUrl;
-            addObject.version = [[NCManageDatabase sharedInstance] getCapabilitiesE2EEVersionWithAccount:tableAccount.account];
+            NSString *e2eeApiVersion = [[NCManageDatabase sharedInstance] getCapabilitiesServerStringWithAccount:tableAccount.account elements:NCElementsJSON.shared.capabilitiesE2EEApiVersion];
+            addObject.version = [e2eeApiVersion intValue];
             
             // Get the last metadata
             tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", tableAccount.account, metadata.serverUrl]];

+ 5 - 1
iOSClient/Networking/NCNetworkingE2EE.swift

@@ -97,7 +97,11 @@ import NCCommunication
                                     }
                                     newobject.mimeType = "httpd/unix-directory"
                                     newobject.serverUrl = serverUrl
-                                    newobject.version = Int(NCManageDatabase.sharedInstance.getCapabilitiesE2EEVersion(account: account))
+                                    if let e2eeApiVersion = NCManageDatabase.sharedInstance.getCapabilitiesServerString(account: account, elements: NCElementsJSON.shared.capabilitiesE2EEApiVersion) {
+                                        newobject.version = Int(e2eeApiVersion) ?? 1
+                                    } else {
+                                        newobject.version = 1
+                                    }
                                     
                                     let _ = NCManageDatabase.sharedInstance.addE2eEncryption(newobject)
 

+ 2 - 2
iOSClient/Networking/NCService.swift

@@ -155,7 +155,7 @@ class NCService: NSObject {
                 self.appDelegate.settingThemingColorBrand()
                 
                 // File Sharing
-                let isFilesSharingEnabled = NCManageDatabase.sharedInstance.getCapabilitiesFilesSharingEnabled(account: account)
+                let isFilesSharingEnabled = NCManageDatabase.sharedInstance.getCapabilitiesServerBool(account: account, elements: NCElementsJSON.shared.capabilitiesFileSharingApiEnabled, exists: false)
                 if (isFilesSharingEnabled && self.appDelegate.activeMain != nil) {
                     
                     OCNetworking.sharedManager()?.readShare(withAccount: account, completion: { (account, items, message, errorCode) in
@@ -196,7 +196,7 @@ class NCService: NSObject {
                 }
                 
                 // Handwerkcloud
-                let isHandwerkcloudEnabled = NCManageDatabase.sharedInstance.getCapabilitiesHandwerkcloudEnabled(account: account)
+                let isHandwerkcloudEnabled = NCManageDatabase.sharedInstance.getCapabilitiesServerBool(account: account, elements: NCElementsJSON.shared.capabilitiesHWCEnabled, exists: false)
                 if (isHandwerkcloudEnabled) {
                     self.requestHC()
                 }

+ 1 - 1
iOSClient/Settings/CCManageAccount.m

@@ -224,7 +224,7 @@
     }
     
     // Section : THIRT PART -------------------------------------------
-    BOOL isHandwerkcloudEnabled = [[NCManageDatabase sharedInstance] getCapabilitiesHandwerkcloudEnabledWithAccount:appDelegate.activeAccount];
+    BOOL isHandwerkcloudEnabled = [[NCManageDatabase sharedInstance] getCapabilitiesServerBoolWithAccount:tableAccount.account elements:NCElementsJSON.shared.capabilitiesHWCEnabled exists:false];
     if (isHandwerkcloudEnabled) {
 
         section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_user_job_", nil)];