Create helper +[PreferencesController secureBookmarkDataForURL:].
authorRobert Sesek <rsesek@bluestatic.org>
Sat, 7 Dec 2019 22:53:59 +0000 (17:53 -0500)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 15 Dec 2019 17:08:04 +0000 (12:08 -0500)
Source/AppDelegate.m
Source/PreferencesController.h
Source/PreferencesController.m

index e665c35f96ddd0c826589807d1b5e92b87e3d609..cab45e77842b5012dce26a2fe5ade9544ba5076f 100644 (file)
       continue;
     }
     if (isStale) {
-      NSData* newBookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope | NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess
-                          includingResourceValuesForKeys:nil
-                                           relativeToURL:nil
-                                                   error:&error];
-      bookmarks[path] = newBookmark;
+      NSData* newBookmark = [PreferencesController secureBookmarkDataForURL:url];
+      bookmarks[url.absoluteString] = newBookmark;
+      [bookmarks removeObjectForKey:path];
     }
 
     if (![url startAccessingSecurityScopedResource]) {
index dd7da37b62b96946ae9f6fac2ed173de17d341ef..34241fe024666248c5ca33e83b1dd2103a8efbcb 100644 (file)
@@ -35,6 +35,8 @@
 
 - (IBAction)addFileAccess:(id)sender;
 
++ (NSData*)secureBookmarkDataForURL:(NSURL*)url;
+
 // panel switching
 - (IBAction)showGeneral:(id)sender;
 - (IBAction)showFileAccess:(id)sender;
index ae64402cf13b0193e00b9fbd3fef8203c7b356a8..8f863d773204096e02a59c55b55dd607dd20fb05 100644 (file)
 
   NSURL* url = panel.URL;
 
-  NSError* error;
-  NSData* secureBookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope | NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess
-                         includingResourceValuesForKeys:nil
-                                          relativeToURL:nil
-                                                  error:&error];
-  if (error) {
-    NSLog(@"Error creating secure bookmark: %@", error);
+  NSData* secureBookmark = [self.class secureBookmarkDataForURL:url];
+  if (!secureBookmark)
     return;
-  }
 
   NSDictionaryControllerKeyValuePair* pair = [self.fileAccessController newObject];
   pair.key = url.absoluteString;
   [self.fileAccessController addObject:pair];
 }
 
++ (NSData*)secureBookmarkDataForURL:(NSURL*)url
+{
+   NSError* error;
+   NSData* secureBookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope | NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess
+                          includingResourceValuesForKeys:nil
+                                           relativeToURL:nil
+                                                   error:&error];
+   if (error) {
+     NSLog(@"Error creating secure bookmark: %@", error);
+   }
+  return secureBookmark;
+}
+
 #pragma mark Panel Switching
 
 /**