Forráskód Böngészése

Remove Move option for locked files + fix locked file deletion

- only allow server deletion if all files can be deleted by the user

Signed-off-by: Henrik Storch <henrik.storch@nextcloud.com>
Henrik Storch 3 éve
szülő
commit
ad6a7267b9

+ 3 - 3
iOSClient/Main/NCFunctionCenter.swift

@@ -535,19 +535,19 @@ import SVGKit
         }
     }
 
-    func openSelectView(items: [Any]) {
+    func openSelectView(items: [tableMetadata]) {
 
         let navigationController = UIStoryboard(name: "NCSelect", bundle: nil).instantiateInitialViewController() as! UINavigationController
         let topViewController = navigationController.topViewController as! NCSelect
         var listViewController = [NCSelect]()
 
-        var copyItems: [Any] = []
+        var copyItems: [tableMetadata] = []
         for item in items {
             copyItems.append(item)
         }
 
         let homeUrl = NCUtilityFileSystem.shared.getHomeServer(account: appDelegate.account)
-        var serverUrl = (copyItems[0] as! Nextcloud.tableMetadata).serverUrl
+        var serverUrl = copyItems[0].serverUrl
 
         // Setup view controllers such that the current view is of the same directory the items to be copied are in
         while true {

+ 1 - 2
iOSClient/Menu/NCMenuAction.swift

@@ -96,8 +96,7 @@ extension NCMenuAction {
             }
         } // else: no metadata selected
 
-        let canDeleteServer = selectedMetadatas.contains(
-            where: { $0.canUnlock(as: (UIApplication.shared.delegate as? AppDelegate)?.userId ?? "") })
+        let canDeleteServer = selectedMetadatas.allSatisfy { $0.canUnlock(as: (UIApplication.shared.delegate as? AppDelegate)?.userId ?? "") }
         var fileList = ""
         for (ix, metadata) in selectedMetadatas.enumerated() {
             guard ix < 3 else { fileList += "\n - ..."; break }

+ 6 - 2
iOSClient/Select/NCSelect.swift

@@ -49,7 +49,7 @@ class NCSelect: UIViewController, UIGestureRecognizerDelegate, UIAdaptivePresent
     @objc var includeImages = false
     @objc var enableSelectFile = false
     @objc var type = ""
-    @objc var items: [Any] = []
+    @objc var items: [tableMetadata] = []
 
     var titleCurrentFolder = NCBrandOptions.shared.brand
     var serverUrl = ""
@@ -141,7 +141,11 @@ class NCSelect: UIViewController, UIGestureRecognizerDelegate, UIAdaptivePresent
             self.view.addSubview(selectCommandViewSelect!)
             selectCommandViewSelect?.selectView = self
             selectCommandViewSelect?.translatesAutoresizingMaskIntoConstraints = false
-
+            let userId = NCManageDatabase.shared.getActiveAccount()?.userId ?? ""
+            if items.contains(where: { !$0.canUnlock(as: userId) }) {
+                selectCommandViewSelect?.moveButton?.isEnabled = false
+                selectCommandViewSelect?.moveButton?.titleLabel?.isEnabled = false
+            }
             selectCommandViewSelect?.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
             selectCommandViewSelect?.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
             selectCommandViewSelect?.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true