marinofaggiana 5 years ago
parent
commit
9fc75a2cc6

+ 1 - 1
iOSClient/Brand/File_Provider_Extension.plist

@@ -19,7 +19,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>2.23.6</string>
 	<key>CFBundleVersion</key>
-	<string>2</string>
+	<string>3</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 1 - 1
iOSClient/Brand/Share.plist

@@ -19,7 +19,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>2.23.6</string>
 	<key>CFBundleVersion</key>
-	<string>2</string>
+	<string>3</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 1 - 1
iOSClient/Brand/iOSClient.plist

@@ -63,7 +63,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>2</string>
+	<string>3</string>
 	<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
 	<true/>
 	<key>Fabric</key>

+ 29 - 1
iOSClient/Database/NCManageDatabase.swift

@@ -2051,7 +2051,7 @@ class NCManageDatabase: NSObject {
         return metadatas
     }
     
-    func createTableMedia(_ metadatas: [tableMetadata], lteDate: Date, gteDate: Date,account: String) -> (isDifferent: Bool, newInsert: Int) {
+    func createTableMedia(_ metadatasSource: [tableMetadata], lteDate: Date, gteDate: Date, account: String) -> (isDifferent: Bool, newInsert: Int) {
 
         let realm = try! Realm()
         realm.refresh()
@@ -2065,6 +2065,34 @@ class NCManageDatabase: NSObject {
         var isDifferent: Bool = false
         var newInsert: Int = 0
         
+        var oldServerUrl = ""
+        var isValidMetadata = true
+        
+        var metadatas = [tableMetadata]()
+        
+        let serversUrlLocked = realm.objects(tableDirectory.self).filter(NSPredicate(format: "account == %@ AND lock == true", account)).map { $0.serverUrl } as Array
+        if (serversUrlLocked.count > 0) {
+            for metadata in metadatasSource {
+                // Verify Lock
+                if (metadata.serverUrl != oldServerUrl) {
+                    var foundLock = false
+                    oldServerUrl = metadata.serverUrl
+                    for serverUrlLocked in serversUrlLocked {
+                        if metadata.serverUrl.contains(serverUrlLocked) {
+                            foundLock = true
+                            break
+                        }
+                    }
+                    isValidMetadata = !foundLock
+                }
+                if isValidMetadata {
+                    metadatas.append(tableMetadata.init(value: metadata))
+                }
+            }
+        } else {
+            metadatas = metadatasSource
+        }
+        
         do {
             try realm.write {