Finished error display in password change sheet

This commit is contained in:
Michael Starke
2021-01-27 17:27:45 +01:00
parent 5457d4dde0
commit fa08e22cf3
3 changed files with 14 additions and 10 deletions

View File

@@ -24,7 +24,7 @@
<window title="Change Password" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="307" height="211"/>
<rect key="contentRect" x="196" y="240" width="369" height="149"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="2">
<rect key="frame" x="0.0" y="0.0" width="369" height="231"/>
@@ -213,7 +213,7 @@ Gw
<constraint firstItem="68" firstAttribute="top" relation="greaterThanOrEqual" secondItem="0Iv-td-ACj" secondAttribute="bottom" constant="20" symbolic="YES" id="s84-KY-RXX"/>
</constraints>
</view>
<point key="canvasLocation" x="73" y="-137"/>
<point key="canvasLocation" x="-329.5" y="-293.5"/>
</window>
</objects>
<resources>

View File

@@ -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;

View File

@@ -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: