mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 05:52:58 +00:00
Added ability to set default password generation settings (issue #166)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
<outlet property="passwordLengthTextFiedl" destination="182" id="473"/>
|
||||
<outlet property="passwordLengthTextField" destination="182" id="481"/>
|
||||
<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="symbolsButton" destination="464" id="596"/>
|
||||
<outlet property="upperCaseButton" destination="452" id="592"/>
|
||||
@@ -233,6 +234,17 @@
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</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>
|
||||
<constraints>
|
||||
<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 *symbolsButton;
|
||||
@property (weak) IBOutlet NSButton *customButton;
|
||||
@property (weak) IBOutlet NSButton *setDefaultButton;
|
||||
@property (weak) IBOutlet NSTextField *entropyTextField;
|
||||
@property (weak) IBOutlet NSLevelIndicator *entropyIndicator;
|
||||
|
||||
@@ -65,19 +66,24 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
self = [super initWithNibName:@"PasswordCreatorView" bundle:nil];
|
||||
if (self) {
|
||||
_password = @"";
|
||||
_passwordLength = 12;
|
||||
_characterFlags = MPPasswordCharactersAll;
|
||||
_useCustomString = NO;
|
||||
_customString = @"";
|
||||
_passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
|
||||
_characterFlags = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyPasswordCharacterFlags];
|
||||
_useCustomString = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyPasswordUseCustomString];
|
||||
_customString = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyPasswordCustomString];
|
||||
_entropy = 0.0;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib {
|
||||
[self.setDefaultButton setEnabled:NO];
|
||||
|
||||
[self.passwordLengthSlider setMinValue:MIN_PASSWORD_LENGTH];
|
||||
[self.passwordLengthSlider setMaxValue:MAX_PASSWORD_LENGTH];
|
||||
[self.passwordLengthSlider setContinuous:YES];
|
||||
|
||||
[self.customCharactersTextField setStringValue:_customString];
|
||||
|
||||
/* Value Transformer */
|
||||
|
||||
id formatter = [[MPUniqueCharactersFormatter alloc] init];
|
||||
@@ -125,6 +131,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
}
|
||||
|
||||
- (IBAction)_toggleCharacters:(id)sender {
|
||||
[_setDefaultButton setEnabled:YES];
|
||||
_characterFlags ^= [sender tag];
|
||||
self.useCustomString = NO;
|
||||
[self reset];
|
||||
@@ -142,6 +149,16 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
[[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 Custom Setter
|
||||
|
||||
@@ -155,6 +172,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
|
||||
- (void)setUseCustomString:(BOOL)useCustomString {
|
||||
if(_useCustomString != useCustomString) {
|
||||
[_setDefaultButton setEnabled:YES];
|
||||
_useCustomString = useCustomString;
|
||||
[self _resetCharacters];
|
||||
}
|
||||
@@ -162,6 +180,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
|
||||
- (void)setPasswordLength:(NSUInteger)passwordLength {
|
||||
if(_passwordLength != passwordLength) {
|
||||
[_setDefaultButton setEnabled:YES];
|
||||
_passwordLength = passwordLength;
|
||||
[self _generatePassword:nil];
|
||||
}
|
||||
@@ -172,6 +191,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
||||
|
||||
- (void)controlTextDidChange:(NSNotification *)obj {
|
||||
if([obj object] == self.customCharactersTextField) {
|
||||
[_setDefaultButton setEnabled:YES];
|
||||
[self _generatePassword:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,6 +61,10 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyEnableQuicklookPreview;
|
||||
/* Password Generation */
|
||||
APPKIT_EXTERN NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard;
|
||||
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) {
|
||||
MPPasswordEncodingUTF8,
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
//
|
||||
|
||||
#import "MPSettingsHelper.h"
|
||||
#import "NSString+MPPasswordCreation.h"
|
||||
|
||||
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
||||
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
||||
@@ -44,6 +45,10 @@ NSString *const kMPSettingsKeyEnableQuicklookPreview = @"Enable
|
||||
NSString *const kMPSettingsKeyCopyGeneratedPasswordToClipboard = @"CopyGeneratedPasswordToClipboard";
|
||||
|
||||
NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDefaultPasswordRounds";
|
||||
NSString *const kMPSettingsKeyDefaultPasswordLength = @"DefaultPasswordLength";
|
||||
NSString *const kMPSettingsKeyPasswordCharacterFlags = @"PasswordCharacterFlags";
|
||||
NSString *const kMPSettingsKeyPasswordUseCustomString = @"PasswordUseCustomString";
|
||||
NSString *const kMPSettingsKeyPasswordCustomString = @"PasswordCustomString";
|
||||
|
||||
@implementation MPSettingsHelper
|
||||
|
||||
@@ -84,7 +89,11 @@ NSString *const kMPSettingsKeyDefaultPasswordRounds = @"KeyDef
|
||||
kMPSettingsKeyEnableGlobalAutotype: @NO,
|
||||
kMPSettingsKeyEnableQuicklookPreview: @NO,
|
||||
kMPSettingsKeyCopyGeneratedPasswordToClipboard: @NO,
|
||||
kMPSettingsKeyDefaultPasswordRounds: @50000
|
||||
kMPSettingsKeyDefaultPasswordRounds: @50000,
|
||||
kMPSettingsKeyDefaultPasswordLength: @12,
|
||||
kMPSettingsKeyPasswordCharacterFlags: @(MPPasswordCharactersAll),
|
||||
kMPSettingsKeyPasswordUseCustomString: @NO,
|
||||
kMPSettingsKeyPasswordCustomString: @""
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user