mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 21:13:35 +00:00
Merge pull request #207 from jamesrhurst/save-password-settings
Added ability to set default password generation settings. Fixes #166
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
<outlet property="passwordLengthTextFiedl" destination="182" id="473"/>
|
<outlet property="passwordLengthTextFiedl" destination="182" id="473"/>
|
||||||
<outlet property="passwordLengthTextField" destination="182" id="481"/>
|
<outlet property="passwordLengthTextField" destination="182" id="481"/>
|
||||||
<outlet property="passwordTextField" destination="152" id="482"/>
|
<outlet property="passwordTextField" destination="152" id="482"/>
|
||||||
|
<outlet property="setDefaultButton" destination="yil-UB-jtO" id="nhh-ys-rmw"/>
|
||||||
<outlet property="shouldCopyPasswordToPasteboardButton" destination="500" id="n2M-pB-2ol"/>
|
<outlet property="shouldCopyPasswordToPasteboardButton" destination="500" id="n2M-pB-2ol"/>
|
||||||
<outlet property="symbolsButton" destination="464" id="596"/>
|
<outlet property="symbolsButton" destination="464" id="596"/>
|
||||||
<outlet property="upperCaseButton" destination="452" id="592"/>
|
<outlet property="upperCaseButton" destination="452" id="592"/>
|
||||||
@@ -233,6 +234,17 @@
|
|||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yil-UB-jtO">
|
||||||
|
<rect key="frame" x="20" y="18" width="83" height="25"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" title="Set Default" bezelStyle="texturedRounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Wvs-Md-Ob8">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="_setDefault:" target="-2" id="EwI-y0-Luh"/>
|
||||||
|
</connections>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstItem="148" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="151"/>
|
<constraint firstItem="148" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="151"/>
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
@property (weak) IBOutlet NSButton *numbersButton;
|
@property (weak) IBOutlet NSButton *numbersButton;
|
||||||
@property (weak) IBOutlet NSButton *symbolsButton;
|
@property (weak) IBOutlet NSButton *symbolsButton;
|
||||||
@property (weak) IBOutlet NSButton *customButton;
|
@property (weak) IBOutlet NSButton *customButton;
|
||||||
|
@property (weak) IBOutlet NSButton *setDefaultButton;
|
||||||
@property (weak) IBOutlet NSTextField *entropyTextField;
|
@property (weak) IBOutlet NSTextField *entropyTextField;
|
||||||
@property (weak) IBOutlet NSLevelIndicator *entropyIndicator;
|
@property (weak) IBOutlet NSLevelIndicator *entropyIndicator;
|
||||||
|
|
||||||
@@ -65,19 +66,24 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
self = [super initWithNibName:@"PasswordCreatorView" bundle:nil];
|
self = [super initWithNibName:@"PasswordCreatorView" bundle:nil];
|
||||||
if (self) {
|
if (self) {
|
||||||
_password = @"";
|
_password = @"";
|
||||||
_passwordLength = 12;
|
_passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
|
||||||
_characterFlags = MPPasswordCharactersAll;
|
_characterFlags = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyPasswordCharacterFlags];
|
||||||
_useCustomString = NO;
|
_useCustomString = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyPasswordUseCustomString];
|
||||||
_customString = @"";
|
_customString = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyPasswordCustomString];
|
||||||
_entropy = 0.0;
|
_entropy = 0.0;
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)awakeFromNib {
|
- (void)awakeFromNib {
|
||||||
|
[self.setDefaultButton setEnabled:NO];
|
||||||
|
|
||||||
[self.passwordLengthSlider setMinValue:MIN_PASSWORD_LENGTH];
|
[self.passwordLengthSlider setMinValue:MIN_PASSWORD_LENGTH];
|
||||||
[self.passwordLengthSlider setMaxValue:MAX_PASSWORD_LENGTH];
|
[self.passwordLengthSlider setMaxValue:MAX_PASSWORD_LENGTH];
|
||||||
[self.passwordLengthSlider setContinuous:YES];
|
[self.passwordLengthSlider setContinuous:YES];
|
||||||
|
|
||||||
|
[self.customCharactersTextField setStringValue:_customString];
|
||||||
|
|
||||||
/* Value Transformer */
|
/* Value Transformer */
|
||||||
|
|
||||||
id formatter = [[MPUniqueCharactersFormatter alloc] init];
|
id formatter = [[MPUniqueCharactersFormatter alloc] init];
|
||||||
@@ -125,6 +131,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)_toggleCharacters:(id)sender {
|
- (IBAction)_toggleCharacters:(id)sender {
|
||||||
|
[_setDefaultButton setEnabled:YES];
|
||||||
_characterFlags ^= [sender tag];
|
_characterFlags ^= [sender tag];
|
||||||
self.useCustomString = NO;
|
self.useCustomString = NO;
|
||||||
[self reset];
|
[self reset];
|
||||||
@@ -142,6 +149,16 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
[[self _findCloseTarget] performClose:nil];
|
[[self _findCloseTarget] performClose:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)_setDefault:(id)sender
|
||||||
|
{
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:_passwordLength forKey:kMPSettingsKeyDefaultPasswordLength];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:_characterFlags forKey:kMPSettingsKeyPasswordCharacterFlags];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:_useCustomString forKey:kMPSettingsKeyPasswordUseCustomString];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:[_customCharactersTextField stringValue] forKey:kMPSettingsKeyPasswordCustomString];
|
||||||
|
|
||||||
|
[_setDefaultButton setEnabled:NO];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Custom Setter
|
#pragma mark Custom Setter
|
||||||
|
|
||||||
@@ -155,6 +172,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
|
|
||||||
- (void)setUseCustomString:(BOOL)useCustomString {
|
- (void)setUseCustomString:(BOOL)useCustomString {
|
||||||
if(_useCustomString != useCustomString) {
|
if(_useCustomString != useCustomString) {
|
||||||
|
[_setDefaultButton setEnabled:YES];
|
||||||
_useCustomString = useCustomString;
|
_useCustomString = useCustomString;
|
||||||
[self _resetCharacters];
|
[self _resetCharacters];
|
||||||
}
|
}
|
||||||
@@ -162,6 +180,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
|
|
||||||
- (void)setPasswordLength:(NSUInteger)passwordLength {
|
- (void)setPasswordLength:(NSUInteger)passwordLength {
|
||||||
if(_passwordLength != passwordLength) {
|
if(_passwordLength != passwordLength) {
|
||||||
|
[_setDefaultButton setEnabled:YES];
|
||||||
_passwordLength = passwordLength;
|
_passwordLength = passwordLength;
|
||||||
[self _generatePassword:nil];
|
[self _generatePassword:nil];
|
||||||
}
|
}
|
||||||
@@ -172,6 +191,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
|
|
||||||
- (void)controlTextDidChange:(NSNotification *)obj {
|
- (void)controlTextDidChange:(NSNotification *)obj {
|
||||||
if([obj object] == self.customCharactersTextField) {
|
if([obj object] == self.customCharactersTextField) {
|
||||||
|
[_setDefaultButton setEnabled:YES];
|
||||||
[self _generatePassword:nil];
|
[self _generatePassword:nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyEnableQuicklookPreview;
|
|||||||
/* Password Generation */
|
/* Password Generation */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard;
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyDefaultPasswordRounds;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyDefaultPasswordRounds;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyDefaultPasswordLength;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordCharacterFlags;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordUseCustomString;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordCustomString;
|
||||||
|
|
||||||
typedef NS_ENUM(NSUInteger, MPPasswordEncoding) {
|
typedef NS_ENUM(NSUInteger, MPPasswordEncoding) {
|
||||||
MPPasswordEncodingUTF8,
|
MPPasswordEncodingUTF8,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
|
#import "NSString+MPPasswordCreation.h"
|
||||||
|
|
||||||
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
||||||
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
||||||
@@ -44,6 +45,10 @@ NSString *const kMPSettingsKeyEnableQuicklookPreview = @"Enable
|
|||||||
NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard = @"CopyGeneratedPasswordToClipboard";
|
NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard = @"CopyGeneratedPasswordToClipboard";
|
||||||
|
|
||||||
NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds";
|
NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds";
|
||||||
|
NSString *const kMPSettingsKeyDefaultPasswordLength = @"DefaultPasswordLength";
|
||||||
|
NSString *const kMPSettingsKeyPasswordCharacterFlags = @"PasswordCharacterFlags";
|
||||||
|
NSString *const kMPSettingsKeyPasswordUseCustomString = @"PasswordUseCustomString";
|
||||||
|
NSString *const kMPSettingsKeyPasswordCustomString = @"PasswordCustomString";
|
||||||
|
|
||||||
@implementation MPSettingsHelper
|
@implementation MPSettingsHelper
|
||||||
|
|
||||||
@@ -84,7 +89,11 @@ NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDef
|
|||||||
kMPSettingsKeyEnableGlobalAutotype: @NO,
|
kMPSettingsKeyEnableGlobalAutotype: @NO,
|
||||||
kMPSettingsKeyEnableQuicklookPreview: @NO,
|
kMPSettingsKeyEnableQuicklookPreview: @NO,
|
||||||
kMPSettingsKeyCopyGeneratedPasswordToClipboard: @NO,
|
kMPSettingsKeyCopyGeneratedPasswordToClipboard: @NO,
|
||||||
kMPSettingsKeyDefaultPasswordRounds: @50000
|
kMPSettingsKeyDefaultPasswordRounds: @50000,
|
||||||
|
kMPSettingsKeyDefaultPasswordLength: @12,
|
||||||
|
kMPSettingsKeyPasswordCharacterFlags: @(MPPasswordCharactersAll),
|
||||||
|
kMPSettingsKeyPasswordUseCustomString: @NO,
|
||||||
|
kMPSettingsKeyPasswordCustomString: @""
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user