Revision: 23978
          http://sourceforge.net/p/bibdesk/svn/23978
Author:   hofman
Date:     2019-07-09 17:33:08 +0000 (Tue, 09 Jul 2019)
Log Message:
-----------
use authentication panel by default for authentication of download

Modified Paths:
--------------
    trunk/bibdesk/BDSKDownloader.h
    trunk/bibdesk/BDSKDownloaderDeprecated.m
    trunk/bibdesk/BDSKDownloaderSession.m

Modified: trunk/bibdesk/BDSKDownloader.h
===================================================================
--- trunk/bibdesk/BDSKDownloader.h      2019-07-09 17:19:15 UTC (rev 23977)
+++ trunk/bibdesk/BDSKDownloader.h      2019-07-09 17:33:08 UTC (rev 23978)
@@ -113,6 +113,8 @@
 
 - (void)downloader:(BDSKDownloader *)downloader download:(BDSKDownload 
*)download didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge 
completionHandler:(void (^)(BDSKDownloaderAuthChallengeDisposition disposition, 
NSURLCredential * credential))completionHandler;
 
+- (NSWindow *)downloader:(BDSKDownloader *)downloader 
downloadWindowForAuthenticationSheet:(BDSKDownload *)download;
+
 @required
 
 // data is nil for downloads

Modified: trunk/bibdesk/BDSKDownloaderDeprecated.m
===================================================================
--- trunk/bibdesk/BDSKDownloaderDeprecated.m    2019-07-09 17:19:15 UTC (rev 
23977)
+++ trunk/bibdesk/BDSKDownloaderDeprecated.m    2019-07-09 17:33:08 UTC (rev 
23978)
@@ -38,6 +38,7 @@
 
 #import "BDSKDownloaderDeprecated.h"
 #import "NSFileManager_BDSKExtensions.h"
+#import "BDSKAuthenticationHandler.h"
 
 @interface BDSKDownloadDeprecated : BDSKDownload {
     NSURLResponse *response;
@@ -78,26 +79,33 @@
 - (void)download:(NSURLDownload *)task 
didReceiveAuthenticationChallenge:(nonnull NSURLAuthenticationChallenge 
*)challenge {
     BDSKDownload *download = [[[self downloadForTask:task] retain] 
autorelease];
     id<BDSKDownloaderDelegate> delegate = [download delegate];
+    
+    void (^completionHandler)(BDSKDownloaderAuthChallengeDisposition, 
NSURLCredential *) = ^(BDSKDownloaderAuthChallengeDisposition disposition, 
NSURLCredential *credential){
+        id <NSURLAuthenticationChallengeSender> sender = [challenge sender];
+        switch (disposition) {
+            case BDSKDownloaderAuthChallengeUseCredential:
+                [sender useCredential:credential 
forAuthenticationChallenge:challenge];
+                break;
+            case BDSKDownloaderAuthChallengePerformDefaultHandling:
+                [sender 
performDefaultHandlingForAuthenticationChallenge:challenge];
+                break;
+            case BDSKDownloaderAuthChallengeCancelAuthenticationChallenge:
+                [sender cancelAuthenticationChallenge:challenge];
+                break;
+            case BDSKDownloaderAuthChallengeRejectProtectionSpace:
+                [sender 
rejectProtectionSpaceAndContinueWithChallenge:challenge];
+                break;
+        }
+    };
+    
     if ([delegate 
respondsToSelector:@selector(downloader:download:didReceiveChallenge:completionHandler:)])
 {
-        [delegate downloader:self download:download 
didReceiveChallenge:challenge 
completionHandler:^(BDSKDownloaderAuthChallengeDisposition disposition, 
NSURLCredential * _Nullable credential){
-            id <NSURLAuthenticationChallengeSender> sender = [challenge 
sender];
-            switch (disposition) {
-                case BDSKDownloaderAuthChallengeUseCredential:
-                    [sender useCredential:credential 
forAuthenticationChallenge:challenge];
-                    break;
-                case BDSKDownloaderAuthChallengePerformDefaultHandling:
-                    [sender 
performDefaultHandlingForAuthenticationChallenge:challenge];
-                    break;
-                case BDSKDownloaderAuthChallengeCancelAuthenticationChallenge:
-                    [sender cancelAuthenticationChallenge:challenge];
-                    break;
-                case BDSKDownloaderAuthChallengeRejectProtectionSpace:
-                    [sender 
rejectProtectionSpaceAndContinueWithChallenge:challenge];
-                    break;
-            }
-        }];
+        [delegate downloader:self download:download 
didReceiveChallenge:challenge completionHandler:completionHandler];
     } else {
-        [[challenge sender] 
performDefaultHandlingForAuthenticationChallenge:challenge];
+        NSWindow *window = nil;
+        if ([delegate 
respondsToSelector:@selector(downloader:downloadWindowForAuthenticationSheet:)])
 {
+            window = [delegate downloader:self 
downloadWindowForAuthenticationSheet:download];
+        }
+        [[BDSKAuthenticationHandler sharedHandler] 
startAuthentication:challenge window:window 
completionHandler:completionHandler];
     }
 }
 

Modified: trunk/bibdesk/BDSKDownloaderSession.m
===================================================================
--- trunk/bibdesk/BDSKDownloaderSession.m       2019-07-09 17:19:15 UTC (rev 
23977)
+++ trunk/bibdesk/BDSKDownloaderSession.m       2019-07-09 17:33:08 UTC (rev 
23978)
@@ -39,6 +39,7 @@
 #import "BDSKDownloaderSession.h"
 #import "NSFileManager_BDSKExtensions.h"
 #import "NSURLSession_BDSKForwardDeclarations.h"
+#import "BDSKAuthenticationHandler.h"
 
 
 @interface BDSKDownloadSession : BDSKDownload {
@@ -205,9 +206,13 @@
     BDSKDownload *download = [[[self downloadForTask:task] retain] 
autorelease];
     id<BDSKDownloaderDelegate> delegate = [download delegate];
     if ([delegate 
respondsToSelector:@selector(downloader:download:didReceiveChallenge:completionHandler:)])
 {
-        [delegate downloader:self download:download 
didReceiveChallenge:challenge completionHandler:(void 
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential * 
_Nullable credential))completionHandler];
+        [delegate downloader:self download:download 
didReceiveChallenge:challenge completionHandler:(void 
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential 
*credential))completionHandler];
     } else {
-        completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, 
nil);
+        NSWindow *window = nil;
+        if ([delegate 
respondsToSelector:@selector(downloader:downloadWindowForAuthenticationSheet:)])
 {
+            window = [delegate downloader:self 
downloadWindowForAuthenticationSheet:download];
+        }
+        [[BDSKAuthenticationHandler sharedHandler] 
startAuthentication:challenge window:window completionHandler:(void 
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential 
*credential))completionHandler];
     }
 }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to