From fa08e22cf3d543fd133413d3d3bebd98ce4fedcd Mon Sep 17 00:00:00 2001 From: Michael Starke Date: Wed, 27 Jan 2021 17:27:45 +0100 Subject: [PATCH] Finished error display in password change sheet --- MacPass/Base.lproj/PasswordEditWindow.xib | 4 ++-- MacPass/MPDocument.m | 2 +- MacPass/MPPasswordEditWindowController.m | 18 +++++++++++------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/MacPass/Base.lproj/PasswordEditWindow.xib b/MacPass/Base.lproj/PasswordEditWindow.xib index 726f390c..9bc75b8c 100644 --- a/MacPass/Base.lproj/PasswordEditWindow.xib +++ b/MacPass/Base.lproj/PasswordEditWindow.xib @@ -24,7 +24,7 @@ - + @@ -213,7 +213,7 @@ Gw - + diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index 1c3bbbf6..ebaae68d 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -527,7 +527,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou - (BOOL)changePassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL { /* sanity check? */ - if([password length] == 0 && keyFileURL == nil) { + if(password.length == 0 && keyFileURL == nil) { return NO; } NSData *keyFileData = keyFileURL ? [NSData dataWithContentsOfURL:keyFileURL] : nil; diff --git a/MacPass/MPPasswordEditWindowController.m b/MacPass/MPPasswordEditWindowController.m index 07d57965..b2eadae3 100644 --- a/MacPass/MPPasswordEditWindowController.m +++ b/MacPass/MPPasswordEditWindowController.m @@ -132,6 +132,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordEditKeyError) { #pragma mark Actions - (IBAction)save:(id)sender { + /* TODO: Move to a more generalized aproach to initalize the composite key and set it via a MPDocument API */ const BOOL hasPassword = HNHUIBoolForState(self.hasPasswordSwitchButton.state); NSString *password = hasPassword ? self.passwordTextField.stringValue : nil; MPDocument *document = self.document; @@ -193,15 +194,15 @@ typedef NS_ENUM(NSUInteger, MPPasswordEditKeyError) { MPPasswordEditKeyError keyError = [self _verifyKey]; MPPasswordEditPasswordError passwordError = [self _verifyPassword]; - self.keyErrorTextField.textColor = NSColor.controlColor; - self.passwordErrorTextField.textColor = NSColor.controlColor; + self.keyErrorTextField.textColor = NSColor.controlTextColor; + self.passwordErrorTextField.textColor = NSColor.controlTextColor; if(keyError == MPPasswordEditKeyErrorNoKey && passwordError == MPPasswordEditPasswordErrorNoPassword) { - self.passwordErrorTextField.stringValue = NSLocalizedString(@"WARNING_NO_PASSWORD", "No Key or Password"); + self.passwordErrorTextField.stringValue = NSLocalizedString(@"WARNING_NO_PASSWORD", "Warning if no password is set when chaning the password"); self.passwordErrorGridRow.hidden = NO; - self.keyErrorTextField.stringValue = NSLocalizedString(@"WARNING_NO_KEYFILE", "No key file is set"); + self.keyErrorTextField.stringValue = NSLocalizedString(@"WARNING_NO_KEYFILE", "Warning tha no key file is set when chaning the password"); self.keyErrorGridRow.hidden = NO; return; @@ -210,24 +211,26 @@ typedef NS_ENUM(NSUInteger, MPPasswordEditKeyError) { switch(keyError) { case MPPasswordEditKeyErrorNotReachable: self.keyErrorTextField.stringValue = NSLocalizedString(@"ERROR_KEYFILE_NOT_FOUND", "Keyfile was not found"); - self.keyErrorGridRow.hidden = NO; self.keyErrorTextField.textColor = NSColor.redColor; + self.keyErrorGridRow.hidden = NO; break; case MPPasswordEditKeyErrorIsCurrentDatabase: self.keyErrorTextField.stringValue = NSLocalizedString(@"ERROR_KEYFILE_IS_CURRENT_DATABASE", "The new key file is the current database."); - self.keyErrorGridRow.hidden = NO; self.keyErrorTextField.textColor = NSColor.redColor; + self.keyErrorGridRow.hidden = NO; break; case MPPasswordEditKeyErrorIsKeePassDatabase: self.keyErrorTextField.stringValue = NSLocalizedString(@"ERROR_KEYFILE_IS_KEEPASS_FILE", "Keyfile is a KeePass database."); - self.keyErrorGridRow.hidden = NO; self.keyErrorTextField.textColor = NSColor.redColor; + self.keyErrorGridRow.hidden = NO; break; case MPPasswordEditKeyErrorNoKey: if(!self.enablePassword) { self.keyErrorTextField.stringValue = NSLocalizedString(@"WARNING_NO_KEYFILE", "No key file is set"); self.keyErrorGridRow.hidden = NO; } + keyError = MPPasswordEditKeyErrorNone; // remove the error + break; case MPPasswordEditKeyErrorNone: break; } @@ -235,6 +238,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordEditKeyError) { switch(passwordError) { case MPPasswordEditPasswordErrorRepeatMissmatch: self.passwordErrorTextField.stringValue = NSLocalizedString(@"ERROR_PASSWORD_MISSMATCH", "Passwords do not match"); + self.passwordErrorTextField.textColor = NSColor.redColor; self.passwordErrorGridRow.hidden = NO; break; case MPPasswordEditPasswordErrorNone: