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