Marino Faggiana преди 1 година
родител
ревизия
d62d73b065
променени са 2 файла, в които са добавени 18 реда и са изтрити 0 реда
  1. 14 0
      iOSClient/Data/NCManageDatabase+E2EE.swift
  2. 4 0
      iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

+ 14 - 0
iOSClient/Data/NCManageDatabase+E2EE.swift

@@ -327,6 +327,20 @@ extension NCManageDatabase {
         }
     }
 
+    @objc func deleteE2EUsersV2(account: String, ocIdServerUrl: String, userId: String) {
+
+        do {
+            let realm = try Realm()
+            try realm.write {
+                if let result = realm.objects(tableE2eUsersV2.self).filter("account == %@ AND ocIdServerUrl == %@ AND userId == %@", account, ocIdServerUrl, userId).first {
+                    realm.delete(result)
+                }
+            }
+        } catch let error {
+            NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")
+        }
+    }
+
     func getE2EUsersV2(account: String, ocIdServerUrl: String) -> Results<tableE2eUsersV2>? {
 
         do {

+ 4 - 0
iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

@@ -67,6 +67,10 @@ extension NCEndToEndMetadata {
             addUser(userId: userId, certificate: CCUtility.getEndToEndCertificate(account))
             addUser(userId: addUserId, certificate: addCertificate)
 
+            if let removeUserId {
+                NCManageDatabase.shared.deleteE2EUsersV2(account: account, ocIdServerUrl: ocIdServerUrl, userId: removeUserId)
+            }
+
             if let users = NCManageDatabase.shared.getE2EUsersV2(account: account, ocIdServerUrl: ocIdServerUrl) {
                 for user in users {
                     addUser(userId: user.userId, certificate: user.certificate)