mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 11:42:30 +00:00
changed password input to use block based api
This commit is contained in:
@@ -323,7 +323,10 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
|
||||
self.passwordInputController = [[MPPasswordInputController alloc] init];
|
||||
}
|
||||
[self _setContentViewController:self.passwordInputController];
|
||||
[self.passwordInputController requestPassword];
|
||||
__weak MPDocumentWindowController *welf = self;
|
||||
[self.passwordInputController requestPassword:^BOOL(NSString *password, NSURL *keyURL, NSError *__autoreleasing *error) {
|
||||
return [((MPDocument *)welf.document) unlockWithPassword:password keyFileURL:keyURL error:error];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)editPassword:(id)sender {
|
||||
|
||||
@@ -8,8 +8,12 @@
|
||||
|
||||
#import "MPViewController.h"
|
||||
|
||||
@class KPKCompositeKey;
|
||||
|
||||
@interface MPPasswordInputController : MPViewController
|
||||
|
||||
- (void)requestPassword;
|
||||
typedef BOOL (^passwordInputCompletionBlock)(NSString *password, NSURL *keyURL, NSError *__autoreleasing*error);
|
||||
|
||||
- (void)requestPassword:(passwordInputCompletionBlock)completionHandler;
|
||||
|
||||
@end
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
@property (assign) BOOL showPassword;
|
||||
@property (nonatomic, assign) BOOL enablePassword;
|
||||
|
||||
@property (copy) passwordInputCompletionBlock completionHandler;
|
||||
@end
|
||||
|
||||
@implementation MPPasswordInputController
|
||||
@@ -66,8 +66,8 @@
|
||||
return self.passwordTextField;
|
||||
}
|
||||
|
||||
- (void)requestPassword {
|
||||
// show warning if read-only mode!
|
||||
- (void)requestPassword:(passwordInputCompletionBlock)completionHandler {
|
||||
self.completionHandler = completionHandler;
|
||||
[self _reset];
|
||||
}
|
||||
|
||||
@@ -87,15 +87,12 @@
|
||||
#pragma mark -
|
||||
#pragma mark Private
|
||||
- (IBAction)_decrypt:(id)sender {
|
||||
/* reset show password */
|
||||
MPDocument *document = self.windowController.document;
|
||||
if(document) {
|
||||
NSError *error = nil;
|
||||
/* No password is different than an empty password */
|
||||
NSString *password = self.enablePassword ? self.passwordTextField.stringValue : nil;
|
||||
if(![document unlockWithPassword:password
|
||||
keyFileURL:self.keyPathControl.URL
|
||||
error:&error]) {
|
||||
|
||||
NSError *error = nil;
|
||||
/* No password is different than an empty password */
|
||||
NSString *password = self.enablePassword ? self.passwordTextField.stringValue : nil;
|
||||
if(self.completionHandler) {
|
||||
if(!self.completionHandler(password, self.keyPathControl.URL, &error)) {
|
||||
[self _showError:error];
|
||||
[self.view.window shakeWindow:nil];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user