mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 16:22:21 +00:00
Ui for the password wizzard now works more or less.
Password creation needs to be finalized
This commit is contained in:
@@ -7,20 +7,32 @@
|
||||
//
|
||||
|
||||
#import "MPPasswordCreatorViewController.h"
|
||||
#import "NSString+MPPasswordCreation.h"
|
||||
|
||||
#define MIN_PASSWORD_LENGTH 1
|
||||
#define MAX_PASSWORD_LENGTH 64
|
||||
|
||||
@interface MPPasswordCreatorViewController ()
|
||||
|
||||
@interface MPPasswordCreatorViewController () {
|
||||
MPPasswordCharacterFlags _characterFlags;
|
||||
}
|
||||
@property (assign) IBOutlet NSTextField *passwordTextField;
|
||||
@property (assign) IBOutlet NSTextField *passwordLengthTextField;
|
||||
@property (assign) IBOutlet NSTextField *customCharactersTextField;
|
||||
@property (assign) IBOutlet NSSlider *passwordLengthSlider;
|
||||
@property (assign) IBOutlet NSButton *addPasswordToPasteboardButton;
|
||||
@property (assign) IBOutlet NSButton *upperCaseButton;
|
||||
@property (assign) IBOutlet NSButton *lowerCaseButton;
|
||||
@property (assign) IBOutlet NSButton *numbersButton;
|
||||
@property (assign) IBOutlet NSButton *symbolsButton;
|
||||
@property (assign) IBOutlet NSButton *customButton;
|
||||
|
||||
@property (assign) NSUInteger passwordLength;
|
||||
@property (assign, nonatomic) BOOL useCustomString;
|
||||
@property (assign, nonatomic) NSUInteger passwordLength;
|
||||
|
||||
- (IBAction)_create:(id)sender;
|
||||
- (IBAction)_generatePassword:(id)sender;
|
||||
- (IBAction)_toggleCharacters:(id)sender;
|
||||
- (IBAction)_usePassword:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -29,7 +41,10 @@
|
||||
- (id)init {
|
||||
self = [super initWithNibName:@"PasswordCreatorView" bundle:nil];
|
||||
if (self) {
|
||||
_password = @"";
|
||||
_passwordLength = 12;
|
||||
_characterFlags = MPPasswordCharactersAll;
|
||||
_useCustomString = NO;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -41,12 +56,75 @@
|
||||
/* Value Transformer */
|
||||
[self.passwordLengthSlider bind:NSValueBinding toObject:self withKeyPath:@"passwordLength" options:nil];
|
||||
[self.passwordLengthTextField bind:NSValueBinding toObject:self withKeyPath:@"passwordLength" options:nil];
|
||||
[self.passwordTextField bind:NSValueBinding toObject:self withKeyPath:@"password" options:nil];
|
||||
|
||||
[_customButton bind:NSValueBinding toObject:self withKeyPath:@"useCustomString" options:nil];
|
||||
[_numbersButton setTag:MPPasswordCharactersNumbers];
|
||||
[_upperCaseButton setTag:MPPasswordCharactersUpperCase];
|
||||
[_lowerCaseButton setTag:MPPasswordCharactersLowerCase];
|
||||
[_symbolsButton setTag:MPPasswordCharactersSymbols];
|
||||
|
||||
[self _resetCharacters];
|
||||
}
|
||||
|
||||
- (IBAction)_create:(id)sender {
|
||||
|
||||
- (IBAction)_generatePassword:(id)sender {
|
||||
if(_useCustomString) {
|
||||
if([[_customCharactersTextField stringValue] length] > 0) {
|
||||
self.password = [[_customCharactersTextField stringValue] passwordWithLength:_passwordLength];
|
||||
}
|
||||
}
|
||||
else {
|
||||
self.password = [NSString passwordWithCharactersets:_characterFlags length:_passwordLength];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)_toggleCharacters:(id)sender {
|
||||
_characterFlags ^= [sender tag];
|
||||
self.useCustomString = NO;
|
||||
[self _resetCharacters];
|
||||
}
|
||||
|
||||
- (IBAction)_usePassword:(id)sender {
|
||||
}
|
||||
|
||||
- (void)setUseCustomString:(BOOL)useCustomString {
|
||||
if(_useCustomString != useCustomString) {
|
||||
_useCustomString = useCustomString;
|
||||
[self _resetCharacters];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setPasswordLength:(NSUInteger)passwordLength {
|
||||
if(_passwordLength != passwordLength) {
|
||||
_passwordLength = passwordLength;
|
||||
[self _generatePassword:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_resetCharacters {
|
||||
if(_useCustomString) {
|
||||
[_customButton setState:NSOnState];
|
||||
}
|
||||
[_customCharactersTextField setEnabled:_useCustomString];
|
||||
[_upperCaseButton setEnabled:!_useCustomString];
|
||||
[_lowerCaseButton setEnabled:!_useCustomString];
|
||||
[_numbersButton setEnabled:!_useCustomString];
|
||||
[_symbolsButton setEnabled:!_useCustomString];
|
||||
|
||||
/* Set to defualts, if we got nothing */
|
||||
if(_characterFlags == 0) {
|
||||
_characterFlags = MPPasswordCharactersAll;
|
||||
}
|
||||
|
||||
const BOOL userLowercase = ( 0 != (MPPasswordCharactersLowerCase & _characterFlags));
|
||||
const BOOL useUppercase = ( 0 != (MPPasswordCharactersUpperCase & _characterFlags) );
|
||||
const BOOL useNumbers = ( 0 != (MPPasswordCharactersNumbers & _characterFlags) );
|
||||
const BOOL useSymbols = ( 0 != (MPPasswordCharactersSymbols & _characterFlags) );
|
||||
|
||||
[_upperCaseButton setState:useUppercase ? NSOnState : NSOffState];
|
||||
[_lowerCaseButton setState:userLowercase ? NSOnState : NSOffState];
|
||||
[_numbersButton setState:useNumbers ? NSOnState : NSOffState];
|
||||
[_symbolsButton setState:useSymbols ? NSOnState : NSOffState];
|
||||
|
||||
}
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user