Fixed issue #156 introduced with #210

This commit is contained in:
michael starke
2014-08-11 10:11:03 +02:00
parent 199b6bbcd2
commit be0ae27455
4 changed files with 22 additions and 17 deletions

View File

@@ -44,6 +44,7 @@
#import "KPKAttribute.h"
#import "NSError+Messages.h"
#import "NSString+MPPasswordCreation.h"
NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification";
NSString *const MPDocumentDidRevertNotifiation = @"com.hicknhack.macpass.MPDocumentDidRevertNotifiation";
@@ -443,6 +444,10 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey
if([self.tree.metaData.defaultUserName length] > 0) {
newEntry.username = self.tree.metaData.defaultUserName;
}
NSString *defaultPassword = [NSString passwordWithDefaultSettings];
if(defaultPassword) {
newEntry.password = defaultPassword;
}
[parent addEntry:newEntry];
[parent.undoManager setActionName:NSLocalizedString(@"ADD_ENTRY", "")];
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentItemAddedNotification object:self];

View File

@@ -436,22 +436,6 @@ typedef NS_ENUM(NSUInteger, MPEntryTab) {
- (void)_didAddItem:(NSNotification *)notification {
[self.tabView selectTabViewItemAtIndex:MPEntryTabGeneral];
/* generate and pre-fill password using default password creation settings */
NSUInteger passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
MPPasswordCharacterFlags characterFlags = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyPasswordCharacterFlags];
BOOL useCustomString = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyPasswordUseCustomString];
NSString *customString = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyPasswordCustomString];
if(useCustomString) {
if([customString length] > 0) {
[self.passwordTextField setStringValue:[customString passwordWithLength:passwordLength]];
}
}
else {
[self.passwordTextField setStringValue:[NSString passwordWithCharactersets:characterFlags length:passwordLength]];
}
[self.titleTextField becomeFirstResponder];
}

View File

@@ -36,6 +36,8 @@ typedef NS_OPTIONS(NSUInteger, MPPasswordCharacterFlags) {
* @return Password consisint only of allowed characters
*/
+ (NSString *)passwordFromString:(NSString *)source length:(NSUInteger)length;
+ (NSString *)passwordWithDefaultSettings;
/**
*
* Creates a random password with only the characters of the receiver

View File

@@ -9,6 +9,8 @@
#import "NSString+MPPasswordCreation.h"
#import "NSData+Random.h"
#import "MPSettingsHelper.h"
NSString *const kMPLowercaseLetterCharacters = @"abcdefghijklmnopqrstuvwxyz";
NSString *const kMPNumberCharacters = @"1234567890";
NSString *const kMPSymbolCharacters = @"!$%&\\|/<>(){}[]=?*'+#-_.:,;";
@@ -49,6 +51,19 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
return password;
}
+ (NSString *)passwordWithDefaultSettings {
/* generate and pre-fill password using default password creation settings */
NSUInteger passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
MPPasswordCharacterFlags characterFlags = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyPasswordCharacterFlags];
BOOL useCustomString = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyPasswordUseCustomString];
NSString *customString = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyPasswordCustomString];
if(useCustomString && [customString length] > 0) {
return [customString passwordWithLength:passwordLength];
}
return [NSString passwordWithCharactersets:characterFlags length:passwordLength];
}
- (NSString *)passwordWithLength:(NSUInteger)length {
return [NSString passwordFromString:self length:length];
}
@@ -69,5 +84,4 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
CGFloat passwordLegnth = [self length];
return passwordLegnth * ( log10(alphabetCount) / log10(2) );
}
@end