diff options
author | Justin Anderson <jander@mit.edu> | 2008-10-02 17:34:17 +0000 |
---|---|---|
committer | Justin Anderson <jander@mit.edu> | 2008-10-02 17:34:17 +0000 |
commit | 347cfa63fa8d3097d540fa84146e020e06c9a91c (patch) | |
tree | 8e87a8f64d6a0bbc8f6158695914fb7262a1fd23 /src/kim/agent | |
parent | b8b7bd63231094a3583847853bf60cb002781161 (diff) | |
download | krb5-347cfa63fa8d3097d540fa84146e020e06c9a91c.tar.gz krb5-347cfa63fa8d3097d540fa84146e020e06c9a91c.tar.xz krb5-347cfa63fa8d3097d540fa84146e020e06c9a91c.zip |
Resize dialogs better, added progress indicator to show KerberosAgent is working between interactions
Make Identity and Identities classes use NSDictionary representations of kim_options like the rest of KerberosAgent.
ticket: 6055
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20811 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kim/agent')
-rw-r--r-- | src/kim/agent/mac/AuthenticationController.h | 6 | ||||
-rw-r--r-- | src/kim/agent/mac/AuthenticationController.m | 105 | ||||
-rw-r--r-- | src/kim/agent/mac/IPCClient.h | 8 | ||||
-rw-r--r-- | src/kim/agent/mac/IPCClient.m | 23 | ||||
-rw-r--r-- | src/kim/agent/mac/Identities.h | 55 | ||||
-rw-r--r-- | src/kim/agent/mac/Identities.m | 501 | ||||
-rw-r--r-- | src/kim/agent/mac/KIMUtilities.h | 2 | ||||
-rw-r--r-- | src/kim/agent/mac/SelectIdentityController.h | 2 | ||||
-rw-r--r-- | src/kim/agent/mac/SelectIdentityController.m | 24 | ||||
-rw-r--r-- | src/kim/agent/mac/resources/English.lproj/Authentication.xib | 386 | ||||
-rw-r--r-- | src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib | 79 |
11 files changed, 582 insertions, 609 deletions
diff --git a/src/kim/agent/mac/AuthenticationController.h b/src/kim/agent/mac/AuthenticationController.h index c62611db7..f6f5bd2b2 100644 --- a/src/kim/agent/mac/AuthenticationController.h +++ b/src/kim/agent/mac/AuthenticationController.h @@ -47,6 +47,11 @@ IBOutlet BadgedImageView *changePasswordBadge; IBOutlet BadgedImageView *errorBadge; + IBOutlet NSProgressIndicator *enterSpinny; + IBOutlet NSProgressIndicator *passwordSpinny; + IBOutlet NSProgressIndicator *samSpinny; + IBOutlet NSProgressIndicator *changePasswordSpinny; + // Controls that need to be made key IBOutlet NSTextField *identityField; IBOutlet NSTextField *passwordField; @@ -98,6 +103,5 @@ contextInfo: (void *) contextInfo; - (IBAction) changePasswordGearAction: (id) sender; -- (void) changePasswordThread: (NSString *) identityString; @end diff --git a/src/kim/agent/mac/AuthenticationController.m b/src/kim/agent/mac/AuthenticationController.m index 34e7662d2..8880cb809 100644 --- a/src/kim/agent/mac/AuthenticationController.m +++ b/src/kim/agent/mac/AuthenticationController.m @@ -142,6 +142,12 @@ } } +- (IBAction) showWindow: (id) sender +{ + [[self window] center]; + [super showWindow:sender]; +} + - (void) setContent: (NSMutableDictionary *) newContent { [self window]; // wake up the nib connections @@ -151,6 +157,7 @@ - (void) showEnterIdentity { kim_error err = KIM_NO_ERROR; + NSWindow *theWindow = [self window]; NSString *key = (associatedClient.name) ? ACAppPrincReqKey : ACPrincReqKey; NSString *message = [NSString stringWithFormat: NSLocalizedStringFromTable(key, ACLocalizationTable, NULL), @@ -207,19 +214,27 @@ // wake up the nib connections and adjust window size [self window]; // set up controls with info from associatedClient - [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; - [containerView addSubview:identityView]; [enterBadge setBadgePath:associatedClient.path]; [glueController setValue:message forKeyPath:message_keypath]; + + [theWindow setFrame:[theWindow frameRectForContentRect:[identityView frame]] display:NO]; + [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; + [containerView addSubview:identityView]; + + [enterSpinny stopAnimation:nil]; + + [theWindow makeFirstResponder:identityField]; [self showWindow:nil]; - [[self window] makeFirstResponder:identityField]; } - (void) showAuthPrompt { uint32_t type = [[glueController valueForKeyPath:@"content.prompt_type"] unsignedIntegerValue]; + [passwordSpinny stopAnimation:nil]; + [samSpinny stopAnimation:nil]; + switch (type) { case kim_prompt_type_password : [self showEnterPassword]; break; @@ -235,8 +250,7 @@ NSRect frame; NSString *key = nil; NSString *message = nil; - - [self window]; + NSWindow *theWindow = [self window]; if ([associatedClient.name isEqualToString:[[NSBundle mainBundle] bundlePath]]) { key = ACPasswordReqKey; @@ -253,40 +267,42 @@ [glueController setValue:message forKeyPath:message_keypath]; - // wake up the nib connections and adjust window size - // set up controls with info from associatedClient - [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; - [containerView addSubview:passwordView]; // set badge [passwordBadge setBadgePath:associatedClient.path]; - + + frame = [passwordView frame]; + [theWindow setFrame:[theWindow frameRectForContentRect:frame] display:NO]; + [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; + [containerView addSubview:passwordView]; + // adjust for checkbox visibility if (![[glueController valueForKeyPath:allow_save_password_keypath] boolValue]) { + frame = [theWindow frame]; shrinkBy = ([passwordField frame].origin.y - [rememberPasswordInKeychainCheckBox frame].origin.y); - frame = [[self window] frame]; frame.origin.y += shrinkBy; frame.size.height -= shrinkBy; - [[self window] setFrame:frame display:NO animate:NO]; + [theWindow setFrame:frame display:NO]; } + [theWindow makeFirstResponder:passwordField]; [self showWindow:nil]; - [[self window] makeFirstResponder:passwordField]; } - (void) showSAM { - // wake up the nib connections and adjust window size - [self window]; - // set up controls with info from associatedClient - [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; - [containerView addSubview:samView]; + NSWindow *theWindow = [self window]; + // set badge [samBadge setBadgePath:associatedClient.path]; [glueController setValue:[NSNumber numberWithBool:NO] forKeyPath:allow_save_password_keypath]; + [theWindow setFrame:[theWindow frameRectForContentRect:[samView frame]] display:NO]; + [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; + [containerView addSubview:samView]; + [self showWindow:nil]; [[self window] makeFirstResponder:samPromptField]; } @@ -297,6 +313,7 @@ NSString *message = [NSString stringWithFormat: NSLocalizedStringFromTable(key, ACLocalizationTable, NULL), associatedClient.name]; + NSWindow *theWindow = [self window]; BOOL expired = [[glueController valueForKeyPath:password_expired_keypath] boolValue]; @@ -323,15 +340,17 @@ [glueController setValue:message forKeyPath:message_keypath]; // wake up the nib connections and adjust window size - [self window]; + [theWindow setFrame:[theWindow frameRectForContentRect:[changePasswordView frame]] display:NO]; // set up controls with info from associatedClient [[containerView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; [containerView addSubview:changePasswordView]; // set badge [changePasswordBadge setBadgePath:associatedClient.path]; + [changePasswordSpinny stopAnimation:nil]; + [self showWindow:nil]; - [[self window] makeFirstResponder:oldPasswordField]; + [theWindow makeFirstResponder:oldPasswordField]; } - (void) showError @@ -478,35 +497,16 @@ - (IBAction) changePasswordGearAction: (id) sender { NSString *expandedString = [KIMUtilities expandedIdentity:[identityField stringValue]]; - NSLog(@"%s", __FUNCTION__); - if (expandedString && [expandedString length] > 0) { - [expandedString retain]; - [NSThread detachNewThreadSelector:@selector(changePasswordThread:) - toTarget:self - withObject:expandedString]; - } -} - -- (void) changePasswordThread: (NSString *) identityString -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - kim_error err = KIM_NO_ERROR; - kim_identity identity = NULL; + NSDictionary *options = [favoriteOptions objectForKey:expandedString]; - NSLog(@"%s %@", __FUNCTION__, identityString); - if (!err) { - err = kim_identity_create_from_string(&identity, [identityString UTF8String]); - } - if (!err) { - err = kim_identity_change_password(identity); + if (!options) { + options = [glueController valueForKeyPath:options_keypath]; } - - NSLog(@"%s %d", __FUNCTION__, err); - - kim_identity_free(&identity); - [identityString release]; - [pool release]; + [enterSpinny startAnimation:nil]; + + // the principal must already be valid to get this far + [associatedClient didEnterIdentity:expandedString options:options wantsChangePassword:YES]; } - (IBAction) cancel: (id) sender @@ -518,13 +518,16 @@ - (IBAction) enterIdentity: (id) sender { NSString *expandedString = [KIMUtilities expandedIdentity:[identityField stringValue]]; - NSDictionary *options = [favoriteOptions objectForKey:expandedString]; - + NSDictionary *options = [favoriteOptions objectForKey:expandedString]; + if (!options) { options = [glueController valueForKeyPath:options_keypath]; } + + [enterSpinny startAnimation:nil]; + // the principal must already be valid to get this far - [associatedClient didEnterIdentity:expandedString options:options]; + [associatedClient didEnterIdentity:expandedString options:options wantsChangePassword:NO]; } - (IBAction) answerAuthPrompt: (id) sender @@ -535,6 +538,8 @@ if (!saveResponse) { saveResponse = [NSNumber numberWithBool:NO]; } + [passwordSpinny startAnimation:nil]; + [samSpinny startAnimation:nil]; [associatedClient didPromptForAuth:responseString saveResponse:saveResponse]; } @@ -545,6 +550,8 @@ NSString *newString = [glueController valueForKeyPath:new_password_keypath]; NSString *verifyString = [glueController valueForKeyPath:verify_password_keypath]; + [changePasswordSpinny startAnimation:nil]; + [associatedClient didChangePassword:oldString newPassword:newString verifyPassword:verifyString]; diff --git a/src/kim/agent/mac/IPCClient.h b/src/kim/agent/mac/IPCClient.h index 172d79374..361c4283a 100644 --- a/src/kim/agent/mac/IPCClient.h +++ b/src/kim/agent/mac/IPCClient.h @@ -57,8 +57,12 @@ - (kim_error) handleError: (NSDictionary *) info; - (void) didCancel; -- (void) didSelectIdentity: (NSString *) identityString options: (NSDictionary *) options; -- (void) didEnterIdentity: (NSString *) identityString options: (NSDictionary *) options; +- (void) didSelectIdentity: (NSString *) identityString + options: (NSDictionary *) options + wantsChangePassword: (BOOL) wantsChangePassword; +- (void) didEnterIdentity: (NSString *) identityString + options: (NSDictionary *) options + wantsChangePassword: (BOOL) wantsChangePassword; - (void) didPromptForAuth: (NSString *) responseString saveResponse: (NSNumber *) saveResponse; - (void) didChangePassword: (NSString *) oldPassword newPassword: (NSString *) newPassword diff --git a/src/kim/agent/mac/IPCClient.m b/src/kim/agent/mac/IPCClient.m index 814e1480f..62b6dd0f8 100644 --- a/src/kim/agent/mac/IPCClient.m +++ b/src/kim/agent/mac/IPCClient.m @@ -119,11 +119,23 @@ enum krb_agent_client_state { return 0; } -- (void) didSelectIdentity: (NSString *) identityString options: (NSDictionary *) options +- (void) didSelectIdentity: (NSString *) identityString + options: (NSDictionary *) options + wantsChangePassword: (BOOL) wantsChangePassword { + NSLog(@"%s %@ %@", __FUNCTION__, identityString, options); [self.currentInfo setObject:identityString forKey:@"identity_string"]; - [self.currentInfo setObject:options forKey:@"options"]; - + // if the user set custom options, use those + if (options) { + [self.currentInfo setObject:options forKey:@"options"]; + } + // else use the options in the hints + else { + [self.currentInfo setObject:[self.currentInfo valueForKeyPath:@"hints.options"] + forKey:@"options"]; + } + [self.currentInfo setObject:[NSNumber numberWithBool:wantsChangePassword] forKey:@"wants_change_password"]; + [KerberosAgentListener didSelectIdentity:self.currentInfo error:0]; // clean up state @@ -142,10 +154,13 @@ enum krb_agent_client_state { return 0; } -- (void) didEnterIdentity: (NSString *) identityString options: (NSDictionary *) options +- (void) didEnterIdentity: (NSString *) identityString + options: (NSDictionary *) options + wantsChangePassword: (BOOL) wantsChangePassword { [self.currentInfo setObject:identityString forKey:@"identity_string"]; [self.currentInfo setObject:options forKey:@"options"]; + [self.currentInfo setObject:[NSNumber numberWithBool:wantsChangePassword] forKey:@"wants_change_password"]; [KerberosAgentListener didEnterIdentity:self.currentInfo error:0]; } diff --git a/src/kim/agent/mac/Identities.h b/src/kim/agent/mac/Identities.h index cdb3167ac..712abb31c 100644 --- a/src/kim/agent/mac/Identities.h +++ b/src/kim/agent/mac/Identities.h @@ -27,43 +27,40 @@ #import "KIMUtilities.h" @interface Identity : NSObject { - kim_identity kimIdentity; - kim_options kimOptions; + NSString *identity; + NSDictionary *options; kim_credential_state state; - cc_time_t expiration_time; + NSDate *expirationDate; BOOL favorite; } -@property kim_identity kimIdentity; -@property kim_options kimOptions; -@property kim_credential_state state; -@property BOOL favorite; -@property cc_time_t expiration_time; +@property (readwrite, retain) NSString *identity; +@property (readwrite, retain) NSDictionary *options; +@property (assign) kim_credential_state state; +@property (assign) BOOL favorite; +@property (readwrite, retain) NSDate *expirationDate; // derived properties -@property(readonly) NSString *principalString; -@property(readonly) NSString *componentsString; -@property(readonly) NSString *realmString; -@property(readonly) NSDate *expirationDate; -@property(readonly) NSString *expirationString; -@property(readonly) NSString *validLifetimeString; -@property(readonly) NSString *renewableLifetimeString; -@property(readonly) BOOL hasCCache; -@property(readwrite) BOOL isRenewable; -@property(readwrite) BOOL isForwardable; -@property(readwrite) BOOL isAddressless; -@property(readwrite) BOOL isProxiable; -@property(readwrite) NSUInteger validLifetime; -@property(readwrite) NSUInteger renewableLifetime; +@property (readonly) kim_identity kimIdentity; +@property (readonly) kim_options kimOptions; +@property (readonly) NSString *expirationString; +@property (readonly) NSString *validLifetimeString; +@property (readonly) NSString *renewableLifetimeString; +@property (readonly) BOOL hasCCache; +@property (readwrite) BOOL isRenewable; +@property (readwrite) BOOL isForwardable; +@property (readwrite) BOOL isAddressless; +@property (readwrite) BOOL isProxiable; +@property (readwrite) NSUInteger validLifetime; +@property (readwrite) NSUInteger renewableLifetime; -- (id) initWithIdentity: (kim_identity) identity options: (kim_options) options; -- (id) initWithFavoriteIdentity: (kim_identity) identity options: (kim_options) options; +- (id) initWithKimIdentity: (kim_identity) an_identity kimOptions: (kim_options) some_options; +- (id) initWithFavoriteIdentity: (kim_identity) an_identity options: (kim_options) some_options; +- (id) initWithIdentity: (NSString *) anIdentity options: (NSDictionary *) someOptions; - (BOOL) isEqualToKIMIdentity: (kim_identity) identity; - (BOOL) isEqual: (Identity *)otherIdentity; -- (kim_error) setPrincipalComponents: (NSString *) componentsString realm: (NSString *) realmString; - - (void) resetOptions; - (void) toggleFavorite; - (BOOL) addToFavorites; @@ -73,12 +70,12 @@ @interface Identities : NSObject { - NSArray *favoriteIdentities; - NSArray *identities; + NSMutableArray *favoriteIdentities; + NSMutableArray *identities; NSConnection *threadConnection; } -@property(readonly, retain) NSArray *identities; +@property(readonly, retain) NSMutableArray *identities; @property(readonly) NSUInteger minimumValidLifetime; @property(readonly) NSUInteger maximumValidLifetime; @property(readonly) NSUInteger minimumRenewableLifetime; diff --git a/src/kim/agent/mac/Identities.m b/src/kim/agent/mac/Identities.m index 4d9aeb71c..c388de46f 100644 --- a/src/kim/agent/mac/Identities.m +++ b/src/kim/agent/mac/Identities.m @@ -34,8 +34,10 @@ @implementation Identity +@synthesize identity; +@synthesize options; +@synthesize expirationDate; @synthesize state; -@synthesize expiration_time; @synthesize favorite; #pragma mark Initialization & Comparison @@ -47,39 +49,39 @@ NSMutableSet *result = [[super keyPathsForValuesAffectingValueForKey:key] mutableCopy]; NSSet *otherKeys = nil; - if ([key isEqualToString:@"principalString"]) { - otherKeys = [NSSet setWithObjects:@"kimIdentity", nil]; - } - else if ([key isEqualToString:@"expirationDate"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; - } - else if ([key isEqualToString:@"expirationString"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; - } - else if ([key isEqualToString:@"isProxiable"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"isForwardable"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"isAddressless"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"isRenewable"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"validLifetime"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"renewableLifetime"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; - } - else if ([key isEqualToString:@"validLifetimeString"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", @"validLifetime", nil]; - } - else if ([key isEqualToString:@"renewableLifetimeString"]) { - otherKeys = [NSSet setWithObjects:@"kimOptions", @"renewableLifetime", nil]; - } +// if ([key isEqualToString:@"principalString"]) { +// otherKeys = [NSSet setWithObjects:@"kimIdentity", nil]; +// } +// else if ([key isEqualToString:@"expirationDate"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; +// } +// else if ([key isEqualToString:@"expirationString"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; +// } +// else if ([key isEqualToString:@"isProxiable"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"isForwardable"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"isAddressless"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"isRenewable"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"validLifetime"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"renewableLifetime"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; +// } +// else if ([key isEqualToString:@"validLifetimeString"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", @"validLifetime", nil]; +// } +// else if ([key isEqualToString:@"renewableLifetimeString"]) { +// otherKeys = [NSSet setWithObjects:@"kimOptions", @"renewableLifetime", nil]; +// } [result unionSet:otherKeys]; @@ -90,29 +92,28 @@ - (id) init { - return [self initWithIdentity: NULL options: NULL]; + return [self initWithIdentity: @"" options: [NSDictionary dictionary]]; } // --------------------------------------------------------------------------- -- (id) initWithIdentity: (kim_identity) identity options: (kim_options) options +- (id) initWithKimIdentity: (kim_identity) an_identity kimOptions: (kim_options) some_options { - if ((self = [super init])) { - self.kimIdentity = identity; - self.kimOptions = options; - self.state = kim_credentials_state_not_yet_valid; - self.expiration_time = 0; - self.favorite = FALSE; - } + kim_error err = KIM_NO_ERROR; + kim_string identity_string = NULL; - return self; + if (!err) { + err = kim_identity_get_display_string(an_identity, &identity_string); + } + return [self initWithIdentity:[NSString stringWithUTF8String:identity_string] + options:[KIMUtilities dictionaryForKimOptions:some_options]]; } // --------------------------------------------------------------------------- -- (id) initWithFavoriteIdentity: (kim_identity) identity options: (kim_options) options +- (id) initWithFavoriteIdentity: (kim_identity) an_identity options: (kim_options) some_options { - if ((self = [self initWithIdentity: identity options: options])) { + if ((self = [self initWithKimIdentity: an_identity kimOptions: some_options])) { self.favorite = TRUE; } @@ -121,12 +122,30 @@ // --------------------------------------------------------------------------- -- (BOOL) isEqualToKIMIdentity: (kim_identity) identity +- (id) initWithIdentity: (NSString *) anIdentity options: (NSDictionary *) someOptions +{ + self = [super init]; + if (self != nil) { + self.identity = anIdentity; + self.options = someOptions; + self.state = kim_credentials_state_not_yet_valid; + self.expirationDate = [NSDate dateWithTimeIntervalSince1970:0]; + self.favorite = NO; + } + return self; +} + +// --------------------------------------------------------------------------- + +- (BOOL) isEqualToKIMIdentity: (kim_identity) comparison_identity { kim_error err = KIM_NO_ERROR; kim_comparison comparison; + kim_identity an_identity = self.kimIdentity; - err = kim_identity_compare (kimIdentity, identity, &comparison); + err = kim_identity_compare (an_identity, comparison_identity, &comparison); + + kim_identity_free(&an_identity); return (!err && kim_comparison_is_equal_to (comparison)); } @@ -142,14 +161,14 @@ - (NSUInteger)hash { - return [self.principalString hash]; + return [self.identity hash]; } // --------------------------------------------------------------------------- - (NSComparisonResult) compare: (Identity *)otherIdentity { - return ([self.principalString compare:otherIdentity.principalString]); + return ([self.identity compare:otherIdentity.identity]); } #pragma mark Actions @@ -159,7 +178,18 @@ - (void) resetOptions { // property setter converts NULL into actual kim_options with default settings - self.kimOptions = NULL; + kim_error err = KIM_NO_ERROR; + kim_options some_options = NULL; + + err = kim_options_create(&some_options); + + if (!err) { + self.options = [KIMUtilities dictionaryForKimOptions:some_options]; + } + + log_kim_error_to_console(err); + + kim_options_free(&some_options); } // --------------------------------------------------------------------------- @@ -179,30 +209,28 @@ { kim_error err = KIM_NO_ERROR; kim_preferences preferences = NULL; - kim_options options = NULL; - kim_string error_string = NULL; - err = kim_preferences_create(&preferences); + kim_identity an_identity = self.kimIdentity; + kim_options some_options = self.kimOptions; - if (!err) { - err = kim_options_create(&options); - } + err = kim_preferences_create(&preferences); if (!err) { - err = kim_preferences_add_favorite_identity(preferences, self.kimIdentity, options); + err = kim_preferences_add_favorite_identity(preferences, an_identity, some_options); } if (!err) { err = kim_preferences_synchronize(preferences); } - if (options) { - kim_options_free(&options); - } - kim_preferences_free(&preferences); + if (!err) { self.favorite = true; } else { - kim_string_create_for_last_error(&error_string, err); - NSLog(@"%s failed with %s", __FUNCTION__, error_string); + log_kim_error_to_console(err); } + + kim_preferences_free(&preferences); + kim_identity_free(&an_identity); + kim_options_free(&some_options); + return (err != KIM_NO_ERROR); } @@ -212,30 +240,25 @@ { kim_error err = KIM_NO_ERROR; kim_preferences preferences = NULL; - kim_options options = NULL; - kim_string error_string = NULL; + kim_identity an_identity = self.kimIdentity; + err = kim_preferences_create(&preferences); if (!err) { - err = kim_options_create(&options); - } - - if (!err) { - err = kim_preferences_remove_favorite_identity(preferences, self.kimIdentity); + err = kim_preferences_remove_favorite_identity(preferences, an_identity); } if (!err) { err = kim_preferences_synchronize(preferences); } - if (options) { - kim_options_free(&options); - } - kim_preferences_free(&preferences); if (!err) { self.favorite = false; } else { - kim_string_create_for_last_error(&error_string, err); - NSLog(@"%s failed with %s", __FUNCTION__, error_string); + log_kim_error_to_console(err); } + + kim_preferences_free(&preferences); + kim_identity_free(&an_identity); + return (err != KIM_NO_ERROR); } @@ -243,13 +266,6 @@ // --------------------------------------------------------------------------- -- (NSDate *) expirationDate -{ - return [NSDate dateWithTimeIntervalSince1970:expiration_time]; -} - -// --------------------------------------------------------------------------- - - (BOOL) hasCCache { kim_error err = KIM_NO_ERROR; @@ -269,326 +285,122 @@ - (kim_identity) kimIdentity { - return kimIdentity; -} - -// --------------------------------------------------------------------------- - -- (void) setKimIdentity:(kim_identity)newKimIdentity -{ kim_error err = KIM_NO_ERROR; - kim_string string = NULL; - - if (!kimIdentity || kimIdentity != newKimIdentity) { - [self willChangeValueForKey:@"kimOptions"]; - - kim_identity_free(&kimIdentity); - kimIdentity = NULL; - if (newKimIdentity != NULL) { - kim_identity_get_display_string(newKimIdentity, &string); - err = kim_identity_copy(&kimIdentity, newKimIdentity); - } - - [self didChangeValueForKey:@"kimOptions"]; - } - - if (err) { - log_kim_error_to_console(err); - } + kim_identity an_identity = NULL; + err = kim_identity_create_from_string(&an_identity, [self.identity UTF8String]); + return an_identity; } // --------------------------------------------------------------------------- - (kim_options) kimOptions { - return kimOptions; -} - -// --------------------------------------------------------------------------- - -- (void) setKimOptions:(kim_options)newKimOptions -{ - // Passing NULL resets to default options - kim_error err = KIM_NO_ERROR; - - if (!kimOptions || kimOptions != newKimOptions) { - [self willChangeValueForKey:@"kimOptions"]; - - kim_options_free(&kimOptions); - kimOptions = NULL; - - if (newKimOptions == NULL) { - err = kim_options_create(&kimOptions); - } else { - err = kim_options_copy(&kimOptions, newKimOptions); - } - - [self didChangeValueForKey:@"kimOptions"]; - } + return [KIMUtilities kimOptionsForDictionary:self.options]; } // --------------------------------------------------------------------------- - (BOOL) isRenewable { - kim_error err = KIM_NO_ERROR; - kim_boolean result = FALSE; - kim_options options = self.kimOptions; - - err = kim_options_get_renewable(options, &result); - - return (result != 0); + return [[self.options valueForKey:@"renewable"] boolValue]; } // --------------------------------------------------------------------------- - (void) setIsRenewable: (BOOL) value { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - err = kim_options_set_renewable(options, value); + [self.options setValue:[NSNumber numberWithBool:value] + forKey:@"renewable"]; } // --------------------------------------------------------------------------- - (BOOL) isForwardable { - kim_error err = KIM_NO_ERROR; - kim_boolean result = FALSE; - kim_options options = self.kimOptions; - - err = kim_options_get_forwardable(options, &result); - - return (result != 0); + return [[self.options valueForKey:@"forwardable"] boolValue]; } // --------------------------------------------------------------------------- - (void) setIsForwardable: (BOOL) value { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - err = kim_options_set_forwardable(options, value); + [self.options setValue:[NSNumber numberWithBool:value] + forKey:@"forwardable"]; } // --------------------------------------------------------------------------- - (BOOL) isAddressless { - kim_error err = KIM_NO_ERROR; - kim_boolean result = FALSE; - kim_options options = self.kimOptions; - - err = kim_options_get_addressless(options, &result); - - return (result != 0); + return [[self.options valueForKey:@"addressless"] boolValue]; } // --------------------------------------------------------------------------- - (void) setIsAddressless: (BOOL) value { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - err = kim_options_set_addressless(options, value); + [self.options setValue:[NSNumber numberWithBool:value] + forKey:@"addressless"]; } // --------------------------------------------------------------------------- - (BOOL) isProxiable { - kim_error err = KIM_NO_ERROR; - kim_boolean result = FALSE; - kim_options options = self.kimOptions; - - err = kim_options_get_proxiable(options, &result); - - return (result != 0); + return [[self.options valueForKey:@"proxiable"] boolValue]; } // --------------------------------------------------------------------------- - (void) setIsProxiable: (BOOL) value { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - err = kim_options_set_proxiable(options, value); + [self.options setValue:[NSNumber numberWithBool:value] + forKey:@"proxiable"]; } // --------------------------------------------------------------------------- - (NSUInteger) validLifetime { - kim_error err = KIM_NO_ERROR; - kim_lifetime value = 0; - kim_options options = self.kimOptions; - - err = kim_options_get_lifetime(options, &value); - - return (NSUInteger) value; + return [[self.options valueForKey:@"valid_lifetime"] unsignedIntegerValue]; } // --------------------------------------------------------------------------- - (void) setValidLifetime: (NSUInteger) newLifetime { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - // round to nearest five minutes - newLifetime = (newLifetime / VALID_LIFETIME_INCREMENT) * VALID_LIFETIME_INCREMENT; - - err = kim_options_set_lifetime(options, (kim_lifetime) newLifetime); + [self.options setValue:[NSNumber numberWithUnsignedInteger:newLifetime] + forKey:@"valid_lifetime"]; } // --------------------------------------------------------------------------- - (NSUInteger) renewableLifetime { - kim_error err = KIM_NO_ERROR; - kim_lifetime value = 0; - kim_options options = self.kimOptions; - - err = kim_options_get_renewal_lifetime(options, &value); - - return (NSUInteger) value; + return [[self.options valueForKey:@"renewable_lifetime"] unsignedIntegerValue]; } // --------------------------------------------------------------------------- - (void) setRenewableLifetime: (NSUInteger) newLifetime { - kim_error err = KIM_NO_ERROR; - kim_options options = self.kimOptions; - - // round to nearest five minutes - newLifetime = (newLifetime / RENEWABLE_LIFETIME_INCREMENT) * RENEWABLE_LIFETIME_INCREMENT; - - err = kim_options_set_renewal_lifetime(options, (kim_lifetime) newLifetime); + [self.options setValue:[NSNumber numberWithUnsignedInteger:newLifetime] + forKey:@"renewable_lifetime"]; } #pragma mark String representations // --------------------------------------------------------------------------- -- (NSString *) principalString -{ - kim_error err = KIM_NO_ERROR; - kim_string display_string = NULL; - NSString *result = nil; - - if (self.kimIdentity) { - err = kim_identity_get_display_string(self.kimIdentity, &display_string); - } - - if (!err && display_string) { - result = [NSString stringWithUTF8String:display_string]; - } - else { - result = @"-"; - } - - if (err) { - log_kim_error_to_console(err); - } - - kim_string_free(&display_string); - - return result; -} - -// --------------------------------------------------------------------------- - -- (NSString *) componentsString -{ - kim_error err = KIM_NO_ERROR; - kim_string display_string = NULL; - NSString *result = @""; - - if (self.kimIdentity) { - err = kim_identity_get_components_string(self.kimIdentity, &display_string); - } - - if (!err && display_string) { - result = [NSString stringWithUTF8String:display_string]; - } - - if (err) { - log_kim_error_to_console(err); - } - - kim_string_free(&display_string); - - return result; -} - -// --------------------------------------------------------------------------- - -- (NSString *) realmString -{ - kim_error err = KIM_NO_ERROR; - kim_string display_string = NULL; - NSString *result = @""; - - if (self.kimIdentity) { - err = kim_identity_get_realm(self.kimIdentity, &display_string); - } - - if (!err && display_string) { - result = [NSString stringWithUTF8String:display_string]; - } - - if (err) { - log_kim_error_to_console(err); - } - - kim_string_free(&display_string); - - return result; -} - -// --------------------------------------------------------------------------- - -- (kim_error) setPrincipalComponents: (NSString *) componentsString realm: (NSString *) realmString -{ - kim_error err = KIM_NO_ERROR; - kim_identity new_identity = NULL; - char *principal_string = NULL; - - asprintf(&principal_string, "%s@%s", - [componentsString UTF8String], [realmString UTF8String]); - - if (principal_string) { - err = kim_identity_create_from_string(&new_identity, principal_string); - } - - self.kimIdentity = new_identity; - - kim_identity_free(&new_identity); - if (principal_string) { - free(principal_string); - } - - return err; -} - -// --------------------------------------------------------------------------- - - (NSString *) expirationString { NSString *result = nil; - - if (expiration_time > 0) { - time_t now = time(NULL); - time_t lifetime = expiration_time - now; - time_t seconds = (lifetime % 60); - time_t minutes = (lifetime / 60 % 60); - time_t hours = (lifetime / 3600 % 24); - time_t days = (lifetime / 86400); + NSTimeInterval lifetime = [self.expirationDate timeIntervalSinceNow]; + if (lifetime > 0) { + NSTimeInterval seconds = fmod(lifetime, 60); + NSTimeInterval minutes = fmod(lifetime, 60 % 60); + NSTimeInterval hours = fmod(lifetime, 3600 % 24); + NSTimeInterval days = fmod(lifetime, 86400); if (seconds > 0) { seconds = 0; minutes++; } if (minutes > 59) { minutes = 0; hours++; } @@ -652,15 +464,15 @@ - (NSString *) description { - return [NSString stringWithFormat:@"%@ (%@) %@", self.principalString, self.expirationString, super.description]; + return [NSString stringWithFormat:@"%@ (%@) %@", self.identity, self.expirationString, [super description]]; } @end @interface Identities () -@property(readwrite, retain) NSArray *favoriteIdentities; -@property(readwrite, retain) NSArray *identities; +@property(readwrite, retain) NSMutableArray *favoriteIdentities; +@property(readwrite, retain) NSMutableArray *identities; @end @@ -857,17 +669,16 @@ // NSLog(@"updating %@", [[NSThread currentThread] description]); while (!err) { kim_ccache ccache = NULL; - kim_identity kimIdentity = NULL; - kim_options kimOptions = NULL; + kim_identity an_identity = NULL; + kim_options some_options = NULL; kim_credential_state state = kim_credentials_state_valid; - kim_time expirationTime = 0; - kim_lifetime lifetime = 0; + kim_time expiration_time = 0; err = kim_ccache_iterator_next (iterator, &ccache); if (!err && !ccache) { break; } if (!err) { - err = kim_ccache_get_client_identity (ccache, &kimIdentity); + err = kim_ccache_get_client_identity (ccache, &an_identity); } if (!err) { @@ -875,33 +686,25 @@ } if (!err && state == kim_credentials_state_valid) { - err = kim_ccache_get_expiration_time (ccache, &expirationTime); + err = kim_ccache_get_expiration_time (ccache, &expiration_time); } if (!err) { - err = kim_ccache_get_options(ccache, &kimOptions); - } - - if (!err) { - err = kim_options_get_lifetime(kimOptions, &lifetime); + err = kim_ccache_get_options(ccache, &some_options); } if (!err) { - Identity *identity = [[Identity alloc] initWithIdentity: kimIdentity options: kimOptions]; + Identity *identity = [[Identity alloc] initWithKimIdentity:an_identity kimOptions:some_options]; if (!identity) { err = ENOMEM; } if (!err) { - kimIdentity = NULL; /* take ownership */ - identity.kimOptions = kimOptions; identity.state = state; - identity.expiration_time = expirationTime; + identity.expirationDate = [NSDate dateWithTimeIntervalSince1970:expiration_time]; [newIdentities addObject: identity]; } - if (identity) { - [identity release]; - identity = nil; - } + [identity release]; + identity = nil; } if (err == KIM_NO_CREDENTIALS_ERR) { @@ -913,8 +716,8 @@ log_kim_error_to_console(err); } - kim_options_free (&kimOptions); - kim_identity_free (&kimIdentity); + kim_options_free (&some_options); + kim_identity_free (&an_identity); kim_ccache_free (&ccache); } @@ -925,11 +728,11 @@ Identity *matchingIdentity = [newIdentities member:identity]; if (matchingIdentity) { identity.state = matchingIdentity.state; - identity.expiration_time = matchingIdentity.expiration_time; + identity.expirationDate = matchingIdentity.expirationDate; [newIdentities removeObject:matchingIdentity]; } else { identity.state = kim_credentials_state_expired; - identity.expiration_time = 0; + identity.expirationDate = [NSDate distantPast]; } } @@ -937,8 +740,10 @@ [newIdentities unionSet:[NSSet setWithArray:self.favoriteIdentities]]; if (!err) { - /* Use @property setter to trigger KVO notifications */ - self.identities = [[newIdentities allObjects] sortedArrayUsingSelector:@selector(compare:)]; + [self.identities removeAllObjects]; + [self.identities addObjectsFromArray:[newIdentities allObjects]]; + [self.identities sortUsingSelector:@selector(compare:)]; + if (!identities) { err = ENOMEM; } } else { log_kim_error_to_console(err); @@ -952,13 +757,9 @@ - (kim_error) addIdentity: (Identity *) anIdentity { kim_error err = KIM_NO_ERROR; - NSMutableArray *newIdentities = nil; - + if (![self.identities containsObject:anIdentity]) { - newIdentities = [self.identities mutableCopy]; - [newIdentities addObject:anIdentity]; - self.identities = newIdentities; - [newIdentities release]; + [self.identities addObject:anIdentity]; } else { err = KIM_IDENTITY_ALREADY_IN_LIST_ERR; } diff --git a/src/kim/agent/mac/KIMUtilities.h b/src/kim/agent/mac/KIMUtilities.h index 516e8effe..b3b201456 100644 --- a/src/kim/agent/mac/KIMUtilities.h +++ b/src/kim/agent/mac/KIMUtilities.h @@ -64,6 +64,8 @@ #define min_renewable_keypath @"content.minRenewableLifetime" #define max_renewable_keypath @"content.maxRenewableLifetime" +#define wants_change_password_keypath @"content.wants_change_password" + #define ACKVOContext @"authenticationController" diff --git a/src/kim/agent/mac/SelectIdentityController.h b/src/kim/agent/mac/SelectIdentityController.h index 9b78bd7b2..494d79913 100644 --- a/src/kim/agent/mac/SelectIdentityController.h +++ b/src/kim/agent/mac/SelectIdentityController.h @@ -73,6 +73,8 @@ - (IBAction) cancelOptions: (id) sender; - (IBAction) doneOptions: (id) sender; +- (IBAction) changePassword: (id) sender; + - (IBAction) select: (id) sender; - (IBAction) cancel: (id) sender; diff --git a/src/kim/agent/mac/SelectIdentityController.m b/src/kim/agent/mac/SelectIdentityController.m index eafd3d462..f6f891ab3 100644 --- a/src/kim/agent/mac/SelectIdentityController.m +++ b/src/kim/agent/mac/SelectIdentityController.m @@ -126,6 +126,13 @@ // --------------------------------------------------------------------------- +- (IBAction) changePassword: (id) sender +{ + +} + +// --------------------------------------------------------------------------- + - (IBAction) select: (id) sender { Identity *selectedIdentity = nil; @@ -136,8 +143,9 @@ } selectedIdentity = [[identityArrayController selectedObjects] lastObject]; - [associatedClient didSelectIdentity: selectedIdentity.principalString - options: [identityOptionsController valueForKeyPath:@"content.options"]]; + [associatedClient didSelectIdentity: selectedIdentity.identity + options: [identityOptionsController valueForKeyPath:@"content.options"] + wantsChangePassword: NO]; } // --------------------------------------------------------------------------- @@ -205,14 +213,16 @@ - (void) showOptions: (NSString *) contextInfo { - Identity *anIdentity = identityOptionsController.content; - - [identityField setStringValue:anIdentity.principalString]; - [staticIdentityField setStringValue:anIdentity.principalString]; - + Identity *anIdentity = [[identityArrayController selectedObjects] lastObject]; // use a copy of the current options [identityOptionsController setContent: [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]]; + + [identityField setStringValue:anIdentity.identity]; + [staticIdentityField setStringValue:anIdentity.identity]; + + [identityOptionsController setContent: + [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]]; [identityOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities minValidLifetime]] forKeyPath:min_valid_keypath]; diff --git a/src/kim/agent/mac/resources/English.lproj/Authentication.xib b/src/kim/agent/mac/resources/English.lproj/Authentication.xib index d665e878d..e9745bd2a 100644 --- a/src/kim/agent/mac/resources/English.lproj/Authentication.xib +++ b/src/kim/agent/mac/resources/English.lproj/Authentication.xib @@ -8,8 +8,12 @@ <string key="IBDocument.HIToolboxVersion">352.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="300157"/> + <integer value="300175"/> + <integer value="300314"/> + <integer value="19"/> + <integer value="300274"/> <integer value="300420"/> + <integer value="300193"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -57,6 +61,7 @@ <string>min_valid_lifetime</string> <string>identity_string</string> <string>favorite_identity_strings</string> + <string>isBusy</string> </object> <bool key="NSEditable">YES</bool> <object class="_NSManagedProxy" key="_NSManagedProxy"/> @@ -83,7 +88,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTextField" id="498665267"> <reference key="NSNextResponder" ref="92892041"/> - <int key="NSvFlags">264</int> + <int key="NSvFlags">266</int> <string key="NSFrame">{{101, 103}, {382, 54}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> @@ -341,7 +346,6 @@ </object> <object class="NSMenuItem" id="744766544"> <reference key="NSMenu" ref="594991555"/> - <bool key="NSIsHidden">YES</bool> <string type="base64-UTF8" key="NSTitle">Q2hhbmdlIFBhc3N3b3Jk4oCmA</string> <string key="NSKeyEquiv"/> <int key="NSMnemonicLoc">2147483647</int> @@ -350,28 +354,6 @@ <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="690863814"/> </object> - <object class="NSMenuItem" id="917012637"> - <reference key="NSMenu" ref="594991555"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="530784694"/> - <reference key="NSMixedImage" ref="790891323"/> - <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="690863814"/> - </object> - <object class="NSMenuItem" id="8728780"> - <reference key="NSMenu" ref="594991555"/> - <string type="base64-UTF8" key="NSTitle">QWJvdXQgS2VyYmVyb3PigKY</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="530784694"/> - <reference key="NSMixedImage" ref="790891323"/> - <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="690863814"/> - </object> </object> </object> <int key="NSSelectedIndex">2</int> @@ -382,13 +364,23 @@ <int key="NSArrowPosition">2</int> </object> </object> + <object class="NSProgressIndicator" id="186678160"> + <reference key="NSNextResponder" ref="92892041"/> + <int key="NSvFlags">1292</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{66, 25}, {16, 16}}</string> + <reference key="NSSuperview" ref="92892041"/> + <int key="NSpiFlags">28938</int> + <double key="NSMinValue">1.600000e+01</double> + <double key="NSMaxValue">1.000000e+02</double> + </object> </object> <string key="NSFrameSize">{500, 187}</string> <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="866582848"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">274</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -522,19 +514,30 @@ <reference key="NSSuperview" ref="866582848"/> <string key="NSClassName">BadgedImageView</string> </object> + <object class="NSProgressIndicator" id="524728083"> + <reference key="NSNextResponder" ref="866582848"/> + <int key="NSvFlags">1292</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{19, 22}, {16, 16}}</string> + <reference key="NSSuperview" ref="866582848"/> + <int key="NSpiFlags">28938</int> + <double key="NSMinValue">1.600000e+01</double> + <double key="NSMaxValue">1.000000e+02</double> + </object> </object> <string key="NSFrameSize">{500, 210}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="898191415"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">274</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTextField" id="1018438662"> <reference key="NSNextResponder" ref="898191415"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{101, 149}, {382, 17}}</string> + <string key="NSFrame">{{101, 140}, {382, 17}}</string> <reference key="NSSuperview" ref="898191415"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="169380754"> @@ -550,7 +553,7 @@ <object class="NSTextField" id="270897371"> <reference key="NSNextResponder" ref="898191415"/> <int key="NSvFlags">290</int> - <string key="NSFrame">{{226, 62}, {254, 22}}</string> + <string key="NSFrame">{{202, 62}, {278, 22}}</string> <reference key="NSSuperview" ref="898191415"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="572127639"> @@ -585,32 +588,16 @@ <int key="NSPeriodicInterval">25</int> </object> </object> - <object class="NSTextField" id="1041175973"> - <reference key="NSNextResponder" ref="898191415"/> - <int key="NSvFlags">292</int> - <string key="NSFrame">{{17, 64}, {204, 17}}</string> - <reference key="NSSuperview" ref="898191415"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="628540900"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">71304192</int> - <string key="NSContents">%@:</string> - <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="1041175973"/> - <reference key="NSBackgroundColor" ref="876444531"/> - <reference key="NSTextColor" ref="883746258"/> - </object> - </object> <object class="NSTextField" id="798767897"> <reference key="NSNextResponder" ref="898191415"/> <int key="NSvFlags">274</int> - <string key="NSFrame">{{101, 92}, {382, 49}}</string> + <string key="NSFrame">{{101, 104}, {382, 28}}</string> <reference key="NSSuperview" ref="898191415"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="840858923"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">272629760</int> - <string key="NSContents">%@</string> + <string type="base64-UTF8" key="NSContents">b25lIGxpbmUKdHdvIGxpbmVzA</string> <object class="NSFont" key="NSSupport" id="26"> <string key="NSName">LucidaGrande</string> <double key="NSSize">1.100000e+01</double> @@ -624,7 +611,7 @@ <object class="NSCustomView" id="944021079"> <reference key="NSNextResponder" ref="898191415"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 126}, {64, 64}}</string> + <string key="NSFrame">{{20, 103}, {64, 64}}</string> <reference key="NSSuperview" ref="898191415"/> <string key="NSClassName">BadgedImageView</string> </object> @@ -649,12 +636,43 @@ <int key="NSPeriodicInterval">25</int> </object> </object> + <object class="NSTextField" id="1022812428"> + <reference key="NSNextResponder" ref="898191415"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{17, 20}, {180, 61}}</string> + <reference key="NSSuperview" ref="898191415"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="370337827"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">71303168</int> + <string key="NSContents">I am a really big prompt label:</string> + <object class="NSFont" key="NSSupport"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="1022812428"/> + <reference key="NSBackgroundColor" ref="876444531"/> + <reference key="NSTextColor" ref="883746258"/> + </object> + </object> + <object class="NSProgressIndicator" id="188143209"> + <reference key="NSNextResponder" ref="898191415"/> + <int key="NSvFlags">1292</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{20, 22}, {16, 16}}</string> + <reference key="NSSuperview" ref="898191415"/> + <int key="NSpiFlags">28938</int> + <double key="NSMinValue">1.600000e+01</double> + <double key="NSMaxValue">1.000000e+02</double> + </object> </object> - <string key="NSFrameSize">{500, 210}</string> + <string key="NSFrameSize">{500, 187}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="60326189"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">286</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -841,8 +859,19 @@ <int key="NSPeriodicInterval">25</int> </object> </object> + <object class="NSProgressIndicator" id="314932147"> + <reference key="NSNextResponder" ref="60326189"/> + <int key="NSvFlags">1292</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{20, 22}, {16, 16}}</string> + <reference key="NSSuperview" ref="60326189"/> + <int key="NSpiFlags">28938</int> + <double key="NSMinValue">1.600000e+01</double> + <double key="NSMaxValue">1.000000e+02</double> + </object> </object> <string key="NSFrameSize">{500, 230}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="861423802"> @@ -932,9 +961,10 @@ <string key="NSWindowContentMaxSize">{600, 400}</string> <string key="NSWindowContentMinSize">{484, 199}</string> <object class="NSView" key="NSWindowView" id="632526042"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <string key="NSFrameSize">{500, 210}</string> + <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMinSize">{484, 221}</string> @@ -1443,54 +1473,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.title</string> - <reference key="source" ref="1041175973"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="1041175973"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">value: selection.title</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.title</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300373</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.message</string> - <reference key="source" ref="1018438662"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="1018438662"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">value: selection.message</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.message</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300374</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.description</string> - <reference key="source" ref="798767897"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="798767897"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">value: selection.description</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.description</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300375</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">value: selection.prompt_response</string> <reference key="source" ref="270897371"/> <reference key="destination" ref="57033499"/> @@ -2084,6 +2066,106 @@ </object> <int key="connectionID">300522</int> </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: selection.message</string> + <reference key="source" ref="798767897"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="798767897"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">value: selection.message</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">selection.message</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300524</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: selection.title</string> + <reference key="source" ref="1018438662"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="1018438662"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">value: selection.title</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">selection.title</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300525</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">displayPatternValue1: selection.description</string> + <reference key="source" ref="1022812428"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="1022812428"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">displayPatternValue1: selection.description</string> + <string key="NSBinding">displayPatternValue1</string> + <string key="NSKeyPath">selection.description</string> + <object class="NSDictionary" key="NSOptions"> + <string key="NS.key.0">NSDisplayPattern</string> + <string key="NS.object.0">%{value1}@:</string> + </object> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300529</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">samSpinny</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="188143209"/> + </object> + <int key="connectionID">300532</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">changePasswordSpinny</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="314932147"/> + </object> + <int key="connectionID">300537</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">enterSpinny</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="186678160"/> + </object> + <int key="connectionID">300538</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">passwordSpinny</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="524728083"/> + </object> + <int key="connectionID">300539</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">enabled: selection.isPrincipalValid</string> + <reference key="source" ref="744766544"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="744766544"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">enabled: selection.isPrincipalValid</string> + <string key="NSBinding">enabled</string> + <string key="NSKeyPath">selection.isPrincipalValid</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300540</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -2144,6 +2226,7 @@ <reference ref="529434335"/> <reference ref="498665267"/> <reference ref="1016187493"/> + <reference ref="186678160"/> </object> <reference key="parent" ref="0"/> <string key="objectName">Enter Identity</string> @@ -2235,6 +2318,7 @@ <reference ref="645528597"/> <reference ref="464070473"/> <reference ref="225475172"/> + <reference ref="524728083"/> </object> <reference key="parent" ref="0"/> <string key="objectName">Enter Password</string> @@ -2335,11 +2419,12 @@ <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="944021079"/> <reference ref="798767897"/> - <reference ref="1018438662"/> <reference ref="270897371"/> - <reference ref="1041175973"/> <reference ref="907069022"/> <reference ref="499090485"/> + <reference ref="1018438662"/> + <reference ref="1022812428"/> + <reference ref="188143209"/> </object> <reference key="parent" ref="0"/> <string key="objectName">SAM Authentication</string> @@ -2377,15 +2462,6 @@ <reference key="parent" ref="898191415"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300200</int> - <reference key="object" ref="1041175973"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="628540900"/> - </object> - <reference key="parent" ref="898191415"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300223</int> <reference key="object" ref="907069022"/> <object class="NSMutableArray" key="children"> @@ -2414,11 +2490,6 @@ <reference key="parent" ref="907069022"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300203</int> - <reference key="object" ref="628540900"/> - <reference key="parent" ref="1041175973"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300207</int> <reference key="object" ref="572127639"/> <reference key="parent" ref="270897371"/> @@ -2449,6 +2520,7 @@ <reference ref="576133689"/> <reference ref="105446308"/> <reference ref="288995352"/> + <reference ref="314932147"/> </object> <reference key="parent" ref="0"/> <string key="objectName">Change Password</string> @@ -2576,8 +2648,6 @@ <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="1020091532"/> - <reference ref="8728780"/> - <reference ref="917012637"/> <reference ref="452996455"/> <reference ref="744766544"/> </object> @@ -2589,16 +2659,6 @@ <reference key="parent" ref="594991555"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300317</int> - <reference key="object" ref="8728780"/> - <reference key="parent" ref="594991555"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300320</int> - <reference key="object" ref="917012637"/> - <reference key="parent" ref="594991555"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300384</int> <reference key="object" ref="441176528"/> <object class="NSMutableArray" key="children"> @@ -2899,6 +2959,40 @@ <reference key="object" ref="752049494"/> <reference key="parent" ref="0"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">300526</int> + <reference key="object" ref="1022812428"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="370337827"/> + </object> + <reference key="parent" ref="898191415"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300527</int> + <reference key="object" ref="370337827"/> + <reference key="parent" ref="1022812428"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300530</int> + <reference key="object" ref="188143209"/> + <reference key="parent" ref="898191415"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300533</int> + <reference key="object" ref="186678160"/> + <reference key="parent" ref="92892041"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300534</int> + <reference key="object" ref="524728083"/> + <reference key="parent" ref="866582848"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300536</int> + <reference key="object" ref="314932147"/> + <reference key="parent" ref="60326189"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -2955,10 +3049,8 @@ <string>300196.ImportedFromIB2</string> <string>300197.IBPluginDependency</string> <string>300197.ImportedFromIB2</string> - <string>300200.IBPluginDependency</string> <string>300201.IBPluginDependency</string> <string>300201.ImportedFromIB2</string> - <string>300203.IBPluginDependency</string> <string>300210.IBPluginDependency</string> <string>300211.IBEditorWindowLastContentRect</string> <string>300211.IBPluginDependency</string> @@ -2986,8 +3078,6 @@ <string>300314.IBEditorWindowLastContentRect</string> <string>300314.IBPluginDependency</string> <string>300316.IBPluginDependency</string> - <string>300317.IBPluginDependency</string> - <string>300320.IBPluginDependency</string> <string>300384.CustomClassName</string> <string>300384.IBPluginDependency</string> <string>300384.ImportedFromIB2</string> @@ -3041,6 +3131,12 @@ <string>300469.IBPluginDependency</string> <string>300502.IBPluginDependency</string> <string>300510.IBPluginDependency</string> + <string>300526.IBPluginDependency</string> + <string>300527.IBPluginDependency</string> + <string>300530.IBPluginDependency</string> + <string>300533.IBPluginDependency</string> + <string>300534.IBPluginDependency</string> + <string>300536.IBPluginDependency</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3058,7 +3154,7 @@ <string>{484, 199}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{602, 455}, {500, 187}}</string> + <string>{{338, 521}, {500, 187}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> @@ -3069,7 +3165,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{477, 611}, {500, 210}}</string> + <string>{{790, 237}, {500, 210}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>NSSecureTextField</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3085,7 +3181,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{628, 163}, {500, 210}}</string> + <string>{{597, 343}, {500, 187}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> @@ -3095,10 +3191,8 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{553, 638}, {500, 210}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3122,9 +3216,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{611, 408}, {189, 93}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{347, 504}, {189, 63}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>NSSecureTextField</string> @@ -3180,6 +3272,12 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -3202,7 +3300,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">300522</int> + <int key="maxID">300540</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -3244,9 +3342,11 @@ <object class="NSMutableArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>changePasswordBadge</string> + <string>changePasswordSpinny</string> <string>changePasswordView</string> <string>containerView</string> <string>enterBadge</string> + <string>enterSpinny</string> <string>errorBadge</string> <string>errorView</string> <string>expiredPasswordView</string> @@ -3257,11 +3357,13 @@ <string>oldPasswordField</string> <string>passwordBadge</string> <string>passwordField</string> + <string>passwordSpinny</string> <string>passwordView</string> <string>rememberPasswordInKeychainCheckBox</string> <string>renewableLifetimeSlider</string> <string>samBadge</string> <string>samPromptField</string> + <string>samSpinny</string> <string>samView</string> <string>ticketOptionsController</string> <string>ticketOptionsSheet</string> @@ -3270,9 +3372,11 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>BadgedImageView</string> + <string>NSProgressIndicator</string> <string>NSView</string> <string>NSView</string> <string>BadgedImageView</string> + <string>NSProgressIndicator</string> <string>BadgedImageView</string> <string>NSView</string> <string>NSView</string> @@ -3283,11 +3387,13 @@ <string>NSTextField</string> <string>BadgedImageView</string> <string>NSTextField</string> + <string>NSProgressIndicator</string> <string>NSView</string> <string>NSButton</string> <string>NSSlider</string> <string>BadgedImageView</string> <string>NSTextField</string> + <string>NSProgressIndicator</string> <string>NSView</string> <string>NSObjectController</string> <string>NSWindow</string> diff --git a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib index d38d944c9..8953d97db 100644 --- a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib +++ b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib @@ -9,7 +9,6 @@ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> <integer value="6"/> - <integer value="300301"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -29,7 +28,7 @@ <object class="NSWindowTemplate" id="224590347"> <int key="NSWindowStyleMask">13</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{279, 512}, {491, 316}}</string> + <string key="NSWindowRect">{{279, 568}, {398, 260}}</string> <int key="NSWTFlags">1886913536</int> <string key="NSWindowTitle">Select a Kerberos Identity</string> <object class="NSMutableString" key="NSWindowClass"> @@ -39,7 +38,6 @@ <characters key="NS.bytes">View</characters> </object> <string key="NSWindowContentMaxSize">{600, 600}</string> - <string key="NSWindowContentMinSize">{419, 298}</string> <object class="NSView" key="NSWindowView" id="928852707"> <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -48,7 +46,7 @@ <object class="NSTextField" id="499468804"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{101, 265}, {373, 17}}</string> + <string key="NSFrame">{{101, 213}, {280, 17}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="82820472"> @@ -84,7 +82,7 @@ <object class="NSTextField" id="675887072"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{101, 220}, {373, 37}}</string> + <string key="NSFrame">{{101, 168}, {280, 37}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="542766611"> @@ -104,7 +102,7 @@ <object class="NSButton" id="426244837"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{390, 13}, {87, 32}}</string> + <string key="NSFrame">{{297, 12}, {87, 32}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="686991406"> @@ -125,7 +123,7 @@ <object class="NSButton" id="505388869"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{308, 13}, {82, 32}}</string> + <string key="NSFrame">{{215, 12}, {82, 32}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="720384657"> @@ -146,14 +144,14 @@ <object class="NSCustomView" id="700535463"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 232}, {64, 64}}</string> + <string key="NSFrame">{{20, 176}, {64, 64}}</string> <reference key="NSSuperview" ref="928852707"/> <string key="NSClassName">BadgedImageView</string> </object> <object class="NSButton" id="949861041"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{20, 19}, {28, 24}}</string> + <string key="NSFrame">{{20, 18}, {28, 24}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="871232847"> @@ -187,13 +185,13 @@ <object class="NSTableView" id="631507655"> <reference key="NSNextResponder" ref="568659409"/> <int key="NSvFlags">256</int> - <string key="NSFrameSize">{449, 133}</string> + <string key="NSFrameSize">{356, 83}</string> <reference key="NSSuperview" ref="568659409"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="282626403"> <reference key="NSNextResponder" ref="71614719"/> <int key="NSvFlags">256</int> - <string key="NSFrameSize">{449, 17}</string> + <string key="NSFrameSize">{356, 17}</string> <reference key="NSSuperview" ref="71614719"/> <reference key="NSTableView" ref="631507655"/> </object> @@ -207,7 +205,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTableColumn" id="1025403577"> <string key="NSIdentifier">identityColumn</string> - <double key="NSWidth">2.670000e+02</double> + <double key="NSWidth">1.740000e+02</double> <double key="NSMinWidth">4.000000e+01</double> <double key="NSMaxWidth">1.000000e+03</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> @@ -328,7 +326,7 @@ <bool key="NSAllowsTypeSelect">YES</bool> </object> </object> - <string key="NSFrame">{{1, 17}, {449, 133}}</string> + <string key="NSFrame">{{1, 17}, {356, 83}}</string> <reference key="NSSuperview" ref="616284695"/> <reference key="NSNextKeyView" ref="631507655"/> <reference key="NSDocView" ref="631507655"/> @@ -362,7 +360,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="282626403"/> </object> - <string key="NSFrame">{{1, 0}, {449, 17}}</string> + <string key="NSFrame">{{1, 0}, {356, 17}}</string> <reference key="NSSuperview" ref="616284695"/> <reference key="NSNextKeyView" ref="282626403"/> <reference key="NSDocView" ref="282626403"/> @@ -371,7 +369,7 @@ </object> <reference ref="865861000"/> </object> - <string key="NSFrame">{{20, 61}, {451, 151}}</string> + <string key="NSFrame">{{20, 59}, {358, 101}}</string> <reference key="NSSuperview" ref="928852707"/> <reference key="NSNextKeyView" ref="568659409"/> <int key="NSsFlags">530</int> @@ -385,7 +383,7 @@ <object class="NSPopUpButton" id="263312988"> <reference key="NSNextResponder" ref="928852707"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{47, 19}, {54, 24}}</string> + <string key="NSFrame">{{47, 18}, {54, 24}}</string> <reference key="NSSuperview" ref="928852707"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="659813048"> @@ -430,7 +428,6 @@ <reference ref="354283131"/> <object class="NSMenuItem" id="136217401"> <reference key="NSMenu" ref="600123164"/> - <bool key="NSIsHidden">YES</bool> <string key="NSTitle">Remember Identity</string> <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> @@ -462,8 +459,20 @@ <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="659813048"/> </object> + <object class="NSMenuItem" id="963135554"> + <reference key="NSMenu" ref="600123164"/> + <string type="base64-UTF8" key="NSTitle">Q2hhbmdlIFBhc3N3b3Jk4oCmA</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="514331248"/> + <reference key="NSMixedImage" ref="572887887"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="659813048"/> + </object> </object> </object> + <int key="NSSelectedIndex">4</int> <bool key="NSPullDown">YES</bool> <int key="NSPreferredEdge">2</int> <bool key="NSUsesItemFromMenu">YES</bool> @@ -472,13 +481,12 @@ </object> </object> </object> - <string key="NSFrameSize">{491, 316}</string> + <string key="NSFrameSize">{398, 260}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> - <string key="NSMinSize">{419, 320}</string> <string key="NSMaxSize">{600, 622}</string> - <string key="NSFrameAutosaveName">SelectIdentityWindow</string> + <string key="NSFrameAutosaveName"/> </object> <object class="NSArrayController" id="333357907"> <object class="NSMutableArray" key="NSDeclaredKeys"> @@ -512,7 +520,7 @@ <nil key="NSViewClass"/> <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="1019868804"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">258</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -854,7 +862,6 @@ </object> </object> <string key="NSFrameSize">{427, 348}</string> - <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> @@ -1570,6 +1577,14 @@ </object> <int key="connectionID">300484</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">changePassword:</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="963135554"/> + </object> + <int key="connectionID">300486</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -2076,6 +2091,7 @@ <reference ref="136217401"/> <reference ref="553755370"/> <reference ref="778570067"/> + <reference ref="963135554"/> </object> <reference key="parent" ref="659813048"/> </object> @@ -2119,6 +2135,11 @@ <reference key="parent" ref="0"/> <string key="objectName">Glue Controller</string> </object> + <object class="IBObjectRecord"> + <int key="objectID">300485</int> + <reference key="object" ref="963135554"/> + <reference key="parent" ref="600123164"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -2202,6 +2223,7 @@ <string>300431.IBPluginDependency</string> <string>300432.IBPluginDependency</string> <string>300462.IBPluginDependency</string> + <string>300485.IBPluginDependency</string> <string>5.IBEditorWindowLastContentRect</string> <string>5.IBPluginDependency</string> <string>5.IBWindowTemplateEditedContentRect</string> @@ -2289,21 +2311,22 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{535, 102}, {198, 83}}</string> + <string>{{535, 82}, {203, 103}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{499, 142}, {491, 316}}</string> + <string>{{508, 407}, {398, 260}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{499, 142}, {491, 316}}</string> + <string>{{508, 407}, {398, 260}}</string> <reference ref="9"/> <reference ref="9"/> <string>{{503, 256}, {419, 465}}</string> <reference ref="9"/> - <reference ref="9"/> + <integer value="0"/> <string>{600, 600}</string> <string>{419, 298}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -2332,7 +2355,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">300484</int> + <int key="maxID">300486</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -2376,6 +2399,7 @@ <string>addToFavorites:</string> <string>cancel:</string> <string>cancelOptions:</string> + <string>changePassword:</string> <string>doneOptions:</string> <string>editOptions:</string> <string>newIdentity:</string> @@ -2396,6 +2420,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> |