diff options
Diffstat (limited to 'src/kim/agent/mac')
-rw-r--r-- | src/kim/agent/mac/AuthenticationController.h | 10 | ||||
-rw-r--r-- | src/kim/agent/mac/AuthenticationController.m | 177 | ||||
-rw-r--r-- | src/kim/agent/mac/IPCClient.h | 33 | ||||
-rw-r--r-- | src/kim/agent/mac/IPCClient.m | 34 | ||||
-rw-r--r-- | src/kim/agent/mac/Identities.m | 4 | ||||
-rw-r--r-- | src/kim/agent/mac/KIMUtilities.h | 75 | ||||
-rw-r--r-- | src/kim/agent/mac/KIMUtilities.m | 112 | ||||
-rw-r--r-- | src/kim/agent/mac/KerberosAgentController.m | 2 | ||||
-rw-r--r-- | src/kim/agent/mac/KerberosAgentListener.h | 31 | ||||
-rw-r--r-- | src/kim/agent/mac/KerberosAgentListener.m | 41 | ||||
-rw-r--r-- | src/kim/agent/mac/KerberosFormatters.m | 12 | ||||
-rw-r--r-- | src/kim/agent/mac/SelectIdentityController.h | 13 | ||||
-rw-r--r-- | src/kim/agent/mac/SelectIdentityController.m | 60 | ||||
-rw-r--r-- | src/kim/agent/mac/ServerDemux.m | 2 | ||||
-rw-r--r-- | src/kim/agent/mac/resources/English.lproj/Authentication.xib | 399 | ||||
-rw-r--r-- | src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib | 491 |
16 files changed, 797 insertions, 699 deletions
diff --git a/src/kim/agent/mac/AuthenticationController.h b/src/kim/agent/mac/AuthenticationController.h index ed5d9d79a1..4035668e2e 100644 --- a/src/kim/agent/mac/AuthenticationController.h +++ b/src/kim/agent/mac/AuthenticationController.h @@ -25,11 +25,14 @@ #import <Cocoa/Cocoa.h> @class IPCClient; +@class KerberosTimeFormatter; @class BadgedImageView; @interface AuthenticationController : NSWindowController { IPCClient *associatedClient; + IBOutlet KerberosTimeFormatter *lifetimeFormatter; + IBOutlet NSView *containerView; IBOutlet NSView *identityView; IBOutlet NSView *passwordView; @@ -45,7 +48,7 @@ IBOutlet BadgedImageView *errorBadge; // Controls that need to be made key - IBOutlet NSTextField *usernameField; + IBOutlet NSTextField *identityField; IBOutlet NSTextField *passwordField; IBOutlet NSTextField *samPromptField; IBOutlet NSTextField *oldPasswordField; @@ -60,9 +63,14 @@ IBOutlet NSSlider *validLifetimeSlider; IBOutlet NSSlider *renewableLifetimeSlider; + + NSMutableArray *favoriteIdentities; + NSMutableDictionary *favoriteOptions; } @property (readwrite, retain) IPCClient *associatedClient; +@property (readwrite, retain) NSMutableArray *favoriteIdentities; +@property (readwrite, retain) NSMutableDictionary *favoriteOptions; - (void) setContent: (NSMutableDictionary *) newContent; diff --git a/src/kim/agent/mac/AuthenticationController.m b/src/kim/agent/mac/AuthenticationController.m index 1756e5aabf..eaf4e6913e 100644 --- a/src/kim/agent/mac/AuthenticationController.m +++ b/src/kim/agent/mac/AuthenticationController.m @@ -24,6 +24,7 @@ #import "AuthenticationController.h" #import "IPCClient.h" +#import "KerberosFormatters.h" #import "BadgedImageView.h" // to get kim_prompt_type enum @@ -47,46 +48,6 @@ * verify_password = " */ -#define client_name_keypath @"content.name" -#define client_path_keypath @"content.path" - -#define identity_string_keypath @"content.identity_string" -#define title_keypath @"content.title" -#define message_keypath @"content.message" -#define description_keypath @"content.description" - -#define username_keypath @"content.username" -#define realm_keypath @"content.realm" -#define realm_history_keypath @"content.realm_history" - -#define prompt_response_keypath @"content.prompt_response" -#define allow_save_password_keypath @"content.allow_save" -#define should_save_password_keypath @"content.save_response" - -#define password_expired_keypath @"content.expired" -#define old_password_keypath @"content.old_password" -#define new_password_keypath @"content.new_password" -#define verify_password_keypath @"content.verify_password" - -#define enable_identity_ok_keypath @"content.isPrincipalValid" -#define enable_prompt_ok_keypath @"content.isPromptValid" -#define change_password_ok_keypath @"content.isChangePasswordValid" - -#define options_keypath @"content.options" - -#define valid_lifetime_keypath @"content.valid_lifetime" -#define renewal_lifetime_keypath @"content.renewal_lifetime" -#define renewable_keypath @"content.renewable" -#define addressless_keypath @"content.addressless" -#define forwardable_keypath @"content.forwardable" - -#define min_valid_keypath @"content.minValidLifetime" -#define max_valid_keypath @"content.maxValidLifetime" -#define min_renewable_keypath @"content.minRenewableLifetime" -#define max_renewable_keypath @"content.maxRenewableLifetime" - -#define ACKVOContext @"authenticationController" - // localization keys and tables #define ACLocalizationTable @"AuthenticationController" @@ -102,6 +63,8 @@ @implementation AuthenticationController @synthesize associatedClient; +@synthesize favoriteIdentities; +@synthesize favoriteOptions; - (id) init { @@ -114,15 +77,14 @@ // We need to float over the loginwindow and SecurityAgent so use its hardcoded level. [[self window] setLevel:2003]; + lifetimeFormatter.displaySeconds = NO; + lifetimeFormatter.displayShortFormat = NO; + [glueController addObserver:self - forKeyPath:username_keypath + forKeyPath:identity_string_keypath options:NSKeyValueObservingOptionNew context:ACKVOContext]; [glueController addObserver:self - forKeyPath:realm_keypath - options:NSKeyValueObservingOptionNew - context:ACKVOContext]; - [glueController addObserver:self forKeyPath:prompt_response_keypath options:NSKeyValueObservingOptionNew context:ACKVOContext]; @@ -143,23 +105,23 @@ - (void) dealloc { - [glueController removeObserver:self forKeyPath:username_keypath]; - [glueController removeObserver:self forKeyPath:realm_keypath]; + [glueController removeObserver:self forKeyPath:identity_string_keypath]; [glueController removeObserver:self forKeyPath:prompt_response_keypath]; [super dealloc]; } - (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + BOOL valid = NO; + if ([(NSString *) context isEqualToString:ACKVOContext]) { - if ([keyPath isEqualToString:username_keypath] || [keyPath isEqualToString:realm_keypath]) { - BOOL valid = [KIMUtilities validatePrincipalWithName:[glueController valueForKeyPath:username_keypath] - realm:[glueController valueForKeyPath:realm_keypath]]; + if ([keyPath isEqualToString:identity_string_keypath]) { + valid = [KIMUtilities validateIdentity:[glueController valueForKeyPath:identity_string_keypath]]; [glueController setValue:[NSNumber numberWithBool:valid] forKeyPath:enable_identity_ok_keypath]; } else if ([keyPath isEqualToString:prompt_response_keypath]) { - BOOL valid = ([[glueController valueForKeyPath:prompt_response_keypath] length] > 0); + valid = ([[glueController valueForKeyPath:prompt_response_keypath] length] > 0); [glueController setValue:[NSNumber numberWithBool:valid] forKeyPath:enable_prompt_ok_keypath]; } @@ -169,10 +131,8 @@ NSString *oldString = [glueController valueForKeyPath:old_password_keypath]; NSString *newString = [glueController valueForKeyPath:new_password_keypath]; NSString *verifyString = [glueController valueForKeyPath:verify_password_keypath]; - BOOL valid = ([oldString length] > 0 && - [newString length] > 0 && - [verifyString length] > 0 && - [newString isEqualToString:verifyString]); + valid = ([oldString length] > 0 && [newString length] > 0 && + [verifyString length] > 0 && [newString isEqualToString:verifyString]); [glueController setValue:[NSNumber numberWithBool:valid] forKeyPath:change_password_ok_keypath]; } @@ -190,11 +150,60 @@ - (void) showEnterIdentity { + kim_error err = KIM_NO_ERROR; NSString *key = (associatedClient.name) ? ACAppPrincReqKey : ACPrincReqKey; NSString *message = [NSString stringWithFormat: NSLocalizedStringFromTable(key, ACLocalizationTable, NULL), associatedClient.name]; + self.favoriteIdentities = [NSMutableArray array]; + self.favoriteOptions = [NSMutableDictionary dictionary]; + // get array of favorite identity strings and associated options + + if (!err) { + kim_preferences preferences = NULL; + kim_options kimOptions = NULL; + kim_count i; + kim_count count = 0; + + err = kim_preferences_create(&preferences); + + if (!err) { + err = kim_preferences_get_number_of_favorite_identities(preferences, + &count); + } + + for (i = 0; !err && i < count; i++) { + kim_identity kimIdentity = NULL; + kim_string display_string = NULL; + NSString *identityString = nil; + + err = kim_preferences_get_favorite_identity_at_index(preferences, + i, + &kimIdentity, + &kimOptions); + if (!err) { + err = kim_identity_get_display_string(kimIdentity, &display_string); + } + if (!err && display_string) { + identityString = [NSString stringWithUTF8String:display_string]; + [favoriteIdentities addObject:identityString]; + } + if (!err) { + [favoriteOptions setObject:[KIMUtilities dictionaryForKimOptions:kimOptions] + forKey:identityString]; + } + + kim_options_free(&kimOptions); + kim_string_free (&display_string); + kim_identity_free (&kimIdentity); + } + + kim_preferences_free(&preferences); + } + + [glueController setValue:favoriteIdentities forKeyPath:favorite_strings_keypath]; + // wake up the nib connections and adjust window size [self window]; // set up controls with info from associatedClient @@ -204,7 +213,7 @@ [glueController setValue:message forKeyPath:message_keypath]; [self showWindow:nil]; - [[self window] makeFirstResponder:usernameField]; + [[self window] makeFirstResponder:identityField]; } - (void) showAuthPrompt @@ -360,9 +369,19 @@ - (IBAction) showTicketOptions: (id) sender { + NSDictionary *options = nil; + // if this is a favorite, try to load its default options + [identityField validateEditing]; + + options = [favoriteOptions valueForKey:[identityField stringValue]]; + + if (!options) { + options = [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]; + } + + // else fallback to options passed from client // use a copy of the current options - [ticketOptionsController setContent: - [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]]; + [ticketOptionsController setContent:options]; [ticketOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities minValidLifetime]] forKeyPath:min_valid_keypath]; @@ -406,7 +425,42 @@ [ticketOptionsController setContent:nil]; } else { // replace existing options with new - [glueController setValue:[ticketOptionsController content] forKeyPath:options_keypath]; + // add to favorites if not already in list + + // replace options of existing if already in list + kim_error err = KIM_NO_ERROR; + kim_preferences prefs = NULL; + kim_identity identity = NULL; + kim_options options = NULL; + + [glueController setValue:[ticketOptionsController content] + forKeyPath:options_keypath]; + + err = kim_preferences_create(&prefs); + + if (!err) { + err = kim_identity_create_from_string(&identity, [[identityField stringValue] UTF8String]); + } + if (!err) { + options = [KIMUtilities kimOptionsForDictionary:[ticketOptionsController content]]; + } + if (!identity) { err = KIM_BAD_PRINCIPAL_STRING_ERR; } + if (!options) { err = KIM_BAD_OPTIONS_ERR; } + + if (!err && identity) { + err = kim_preferences_remove_favorite_identity(prefs, identity); + } + if (!err && identity && options) { + err = kim_preferences_add_favorite_identity(prefs, identity, options); + } + + if (!err) { + err = kim_preferences_synchronize(prefs); + } + + kim_preferences_free(&prefs); + kim_options_free(&options); + kim_identity_free(&identity); } [ticketOptionsSheet orderOut:nil]; } @@ -419,11 +473,8 @@ - (IBAction) enterIdentity: (id) sender { - NSString *usernameString = [glueController valueForKeyPath:username_keypath]; - NSString *realmString = [glueController valueForKeyPath:realm_keypath]; - NSString *identityString = [NSString stringWithFormat:@"%@@%@", usernameString, realmString]; + NSString *identityString = [glueController valueForKeyPath:identity_string_keypath]; NSDictionary *options = [glueController valueForKeyPath:options_keypath]; - NSLog(@"%s options == %@", __FUNCTION__, options); // the principal must already be valid to get this far [associatedClient didEnterIdentity:identityString options:options]; diff --git a/src/kim/agent/mac/IPCClient.h b/src/kim/agent/mac/IPCClient.h index 6a0654e985..172d79374f 100644 --- a/src/kim/agent/mac/IPCClient.h +++ b/src/kim/agent/mac/IPCClient.h @@ -1,10 +1,27 @@ -// -// IPCClient.h -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + #import <Cocoa/Cocoa.h> #import "KIMUtilities.h" @@ -40,7 +57,7 @@ - (kim_error) handleError: (NSDictionary *) info; - (void) didCancel; -- (void) didSelectIdentity: (NSString *) identityString; +- (void) didSelectIdentity: (NSString *) identityString options: (NSDictionary *) options; - (void) didEnterIdentity: (NSString *) identityString options: (NSDictionary *) options; - (void) didPromptForAuth: (NSString *) responseString saveResponse: (NSNumber *) saveResponse; - (void) didChangePassword: (NSString *) oldPassword diff --git a/src/kim/agent/mac/IPCClient.m b/src/kim/agent/mac/IPCClient.m index c49e35d04a..814e1480f5 100644 --- a/src/kim/agent/mac/IPCClient.m +++ b/src/kim/agent/mac/IPCClient.m @@ -1,10 +1,27 @@ -// -// IPCClient.m -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + #import "IPCClient.h" #import "SelectIdentityController.h" @@ -102,9 +119,10 @@ enum krb_agent_client_state { return 0; } -- (void) didSelectIdentity: (NSString *) identityString +- (void) didSelectIdentity: (NSString *) identityString options: (NSDictionary *) options { [self.currentInfo setObject:identityString forKey:@"identity_string"]; + [self.currentInfo setObject:options forKey:@"options"]; [KerberosAgentListener didSelectIdentity:self.currentInfo error:0]; diff --git a/src/kim/agent/mac/Identities.m b/src/kim/agent/mac/Identities.m index 2ead4e5e88..4d9aeb71c5 100644 --- a/src/kim/agent/mac/Identities.m +++ b/src/kim/agent/mac/Identities.m @@ -512,7 +512,7 @@ if (self.kimIdentity) { err = kim_identity_get_components_string(self.kimIdentity, &display_string); } - + if (!err && display_string) { result = [NSString stringWithUTF8String:display_string]; } @@ -643,7 +643,7 @@ [parts addObject:[NSString stringWithFormat:@"%d minutes", minutes]]; } if ([parts count] == 0) { - [parts addObject:@"0 lifetime"]; + [parts addObject:@"0"]; } return [parts componentsJoinedByString:@", "]; } diff --git a/src/kim/agent/mac/KIMUtilities.h b/src/kim/agent/mac/KIMUtilities.h index 49871d9e6d..4e448b9d56 100644 --- a/src/kim/agent/mac/KIMUtilities.h +++ b/src/kim/agent/mac/KIMUtilities.h @@ -1,10 +1,27 @@ -// -// KIMUtilities.h -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + #import <Cocoa/Cocoa.h> #import <Kerberos/kim.h> @@ -12,6 +29,45 @@ #define VALID_LIFETIME_INCREMENT (5 * 60) #define RENEWABLE_LIFETIME_INCREMENT (15 * 60) +#define client_name_keypath @"content.name" +#define client_path_keypath @"content.path" + +#define identity_string_keypath @"content.identity_string" +#define favorite_strings_keypath @"content.favorite_identity_strings" +#define title_keypath @"content.title" +#define message_keypath @"content.message" +#define description_keypath @"content.description" + +#define prompt_response_keypath @"content.prompt_response" +#define allow_save_password_keypath @"content.allow_save" +#define should_save_password_keypath @"content.save_response" + +#define password_expired_keypath @"content.expired" +#define old_password_keypath @"content.old_password" +#define new_password_keypath @"content.new_password" +#define verify_password_keypath @"content.verify_password" + +#define enable_identity_ok_keypath @"content.isPrincipalValid" +#define enable_prompt_ok_keypath @"content.isPromptValid" +#define change_password_ok_keypath @"content.isChangePasswordValid" + +#define options_keypath @"content.options" + +#define valid_lifetime_keypath @"content.valid_lifetime" +#define renewal_lifetime_keypath @"content.renewal_lifetime" +#define renewable_keypath @"content.renewable" +#define addressless_keypath @"content.addressless" +#define forwardable_keypath @"content.forwardable" + +#define min_valid_keypath @"content.minValidLifetime" +#define max_valid_keypath @"content.maxValidLifetime" +#define min_renewable_keypath @"content.minRenewableLifetime" +#define max_renewable_keypath @"content.maxRenewableLifetime" + +#define ACKVOContext @"authenticationController" + + + #define log_kim_error_to_console(err)\ {\ NSLog(@"%s got error %@", __FUNCTION__, [KIMUtilities stringForLastKIMError:err]);\ @@ -24,10 +80,13 @@ NSLog(@"%s got error %@", __FUNCTION__, [KIMUtilities stringForLastKIMError:err] + (BOOL) validatePrincipalWithName: (NSString *) name realm: (NSString *) realm; -+ (NSDictionary *) dictionaryForKimOptions: (kim_options) options; ++ (BOOL) validateIdentity: (NSString *) identityString; ++ (NSDictionary *) dictionaryForKimOptions: (kim_options) options; + (kim_options) kimOptionsForDictionary: (NSDictionary *) aDict; ++ (NSDictionary *) dictionaryForKimSelectionHints: (kim_selection_hints) hints; + + (NSUInteger)minValidLifetime; + (NSUInteger)maxValidLifetime; + (NSUInteger)minRenewableLifetime; diff --git a/src/kim/agent/mac/KIMUtilities.m b/src/kim/agent/mac/KIMUtilities.m index 9319e676ae..f450cdf2ba 100644 --- a/src/kim/agent/mac/KIMUtilities.m +++ b/src/kim/agent/mac/KIMUtilities.m @@ -1,10 +1,26 @@ -// -// KIMUtilities.m -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ #import "KIMUtilities.h" @@ -29,16 +45,29 @@ realm: (NSString *) realm { kim_error err = KIM_NO_ERROR; - kim_identity identity = NULL; - NSString *principal = nil; + NSString *identityString = nil; if (!name || !realm || [name length] == 0) { err = KIM_BAD_PRINCIPAL_STRING_ERR; } if (!err) { - principal = [[NSString alloc] initWithFormat:@"%@@%@", name, realm]; - err = kim_identity_create_from_string(&identity, [principal UTF8String]); - [principal release]; + identityString = [[NSString alloc] initWithFormat:@"%@@%@", name, realm]; + err = [KIMUtilities validateIdentity:identityString]; + [identityString release]; + } + + return (err == KIM_NO_ERROR); +} + ++ (BOOL) validateIdentity: (NSString *) identityString +{ + kim_error err = KIM_NO_ERROR; + kim_identity identity = NULL; + if (!identityString || [identityString length] <= 1) { + err = KIM_BAD_PRINCIPAL_STRING_ERR; + } + if (!err) { + err = kim_identity_create_from_string(&identity, [identityString UTF8String]); } if (!identity) { err = KIM_BAD_PRINCIPAL_STRING_ERR; @@ -167,6 +196,65 @@ return options; } ++ (NSDictionary *) dictionaryForKimSelectionHints: (kim_selection_hints) hints +{ + kim_error err = KIM_NO_ERROR; + + NSMutableDictionary *newDict = [NSMutableDictionary dictionaryWithCapacity:20]; + + kim_string explanation = NULL; + kim_options options = NULL; + kim_string service_identity = NULL; + kim_string client_realm = NULL; + kim_string user = NULL; + kim_string service_realm = NULL; + kim_string service = NULL; + kim_string server = NULL; + + if (!err) { + err = kim_selection_hints_get_explanation(hints, &explanation); + [newDict setValue:(explanation) ? [NSString stringWithUTF8String:explanation] : @"" + forKey:@"explanation"]; + } + if (!err) { + err = kim_selection_hints_get_options(hints, &options); + [newDict setValue:[KIMUtilities dictionaryForKimOptions:options] + forKey:@"options"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_client_realm, &client_realm); + [newDict setValue:(client_realm) ? [NSString stringWithUTF8String:client_realm] : @"" + forKey:@"client_realm"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_user, &user); + [newDict setValue:(user) ? [NSString stringWithUTF8String:user] : @"" + forKey:@"user"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_service_realm, &service_realm); + [newDict setValue:(service_realm) ? [NSString stringWithUTF8String:service_realm] : @"" + forKey:@"service_realm"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_service, &service); + [newDict setValue:(service) ? [NSString stringWithUTF8String:service] : @"" + forKey:@"service"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_server, &server); + [newDict setValue:(server) ? [NSString stringWithUTF8String:server] : @"" + forKey:@"server"]; + } + if (!err) { + err = kim_selection_hints_get_hint(hints, kim_hint_key_service_identity, &service_identity); + [newDict setValue:(service_identity) ? [NSString stringWithUTF8String:service_identity] : @"" + forKey:@"service_identity"]; + } + + return newDict; +} + + (NSUInteger)minValidLifetime { kim_error err = KIM_NO_ERROR; diff --git a/src/kim/agent/mac/KerberosAgentController.m b/src/kim/agent/mac/KerberosAgentController.m index 5e973ea5e6..b392dd40a2 100644 --- a/src/kim/agent/mac/KerberosAgentController.m +++ b/src/kim/agent/mac/KerberosAgentController.m @@ -29,7 +29,7 @@ #import "IPCClient.h" #import "ServerDemux.h" -#define SECONDS_BEFORE_AUTO_QUIT_ON_START 5 +#define SECONDS_BEFORE_AUTO_QUIT_ON_START 600 #define SECONDS_BEFORE_AUTO_QUIT_ON_NO_CLIENTS 1 @implementation KerberosAgentController diff --git a/src/kim/agent/mac/KerberosAgentListener.h b/src/kim/agent/mac/KerberosAgentListener.h index 3c0fc8ee36..2d9378aff5 100644 --- a/src/kim/agent/mac/KerberosAgentListener.h +++ b/src/kim/agent/mac/KerberosAgentListener.h @@ -1,10 +1,27 @@ -// -// KerberosAgentListener.h -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + #import <Cocoa/Cocoa.h> #import <Kerberos/kim.h> diff --git a/src/kim/agent/mac/KerberosAgentListener.m b/src/kim/agent/mac/KerberosAgentListener.m index fb87c02c35..019fbb4ff1 100644 --- a/src/kim/agent/mac/KerberosAgentListener.m +++ b/src/kim/agent/mac/KerberosAgentListener.m @@ -1,10 +1,27 @@ -// -// KerberosAgentListener.m -// Kerberos5 -// -// Created by Justin Anderson on 9/28/08. -// Copyright 2008 MIT. All rights reserved. -// +/* + * Copyright 2008 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + #import "KerberosAgentListener.h" #import "KIMUtilities.h" @@ -171,17 +188,12 @@ static KerberosAgentListener *sharedListener = nil; replyPort: (mach_port_t) reply_port hints: (kim_selection_hints) hints { - kim_error err = KIM_NO_ERROR; - kim_selection_hints new_hints = NULL; NSDictionary *info = nil; - // new hints will be freed by main thread - err = kim_selection_hints_copy(&new_hints, hints); - info = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInteger:client_port], @"client_port", [NSNumber numberWithInteger:reply_port], @"reply_port", - [NSValue valueWithPointer:new_hints], @"hints", + [KIMUtilities dictionaryForKimSelectionHints:hints], @"hints", nil]; [[NSApp delegate] performSelectorOnMainThread:@selector(selectIdentity:) @@ -209,9 +221,6 @@ static KerberosAgentListener *sharedListener = nil; options = [KIMUtilities kimOptionsForDictionary:[info objectForKey:@"options"]]; } - log_kim_error_to_console(err); - log_kim_error_to_console(error); - if (!err) { err = kim_handle_reply_select_identity(reply_port, identity, options, error); } diff --git a/src/kim/agent/mac/KerberosFormatters.m b/src/kim/agent/mac/KerberosFormatters.m index b8a5b3aa4f..dc4092140b 100644 --- a/src/kim/agent/mac/KerberosFormatters.m +++ b/src/kim/agent/mac/KerberosFormatters.m @@ -49,11 +49,13 @@ { NSString *result = nil; - if (anObject == nil || ![anObject respondsToSelector:@selector(timeIntervalSinceNow)]) { - result = @""; - } - else { - result = [self stringForLifetime:(time_t)[(NSDate *)anObject timeIntervalSinceNow]]; + if (anObject) { + if ([anObject respondsToSelector:@selector(timeIntervalSinceNow)]) { + result = [self stringForLifetime:(time_t)[(NSDate *)anObject timeIntervalSinceNow]]; + } + else if ([anObject respondsToSelector:@selector(unsignedIntegerValue)]) { + result = [self stringForLifetime:(time_t)[(NSNumber *)anObject unsignedIntegerValue]]; + } } return result; diff --git a/src/kim/agent/mac/SelectIdentityController.h b/src/kim/agent/mac/SelectIdentityController.h index 2251d2773e..9b78bd7b2b 100644 --- a/src/kim/agent/mac/SelectIdentityController.h +++ b/src/kim/agent/mac/SelectIdentityController.h @@ -39,7 +39,6 @@ IBOutlet NSTextField *explanationTextField; IBOutlet NSTableView *identityTableView; - IBOutlet NSTableColumn *identityTableColumn; IBOutlet NSButton *addIdentityButton; IBOutlet NSPopUpButton *actionPopupButton; IBOutlet NSButton *selectIdentityButton; @@ -48,16 +47,23 @@ Identities *identities; NSTimer *refreshTimer; + IBOutlet NSObjectController *glueController; + IBOutlet NSWindow *identityOptionsWindow; IBOutlet NSObjectController *identityOptionsController; - IBOutlet NSTextField *nameField; - IBOutlet NSTextField *realmField; + IBOutlet NSTextField *identityField; + IBOutlet NSTextField *staticIdentityField; + + IBOutlet NSSlider *validLifetimeSlider; + IBOutlet NSSlider *renewableLifetimeSlider; IBOutlet NSButton *ticketOptionsOkButton; } @property (readwrite, retain) IPCClient *associatedClient; +- (void) setContent: (NSMutableDictionary *) newContent; + - (IBAction) newIdentity: (id) sender; - (IBAction) addToFavorites: (id) sender; - (IBAction) removeFromFavorites: (id) sender; @@ -70,6 +76,7 @@ - (IBAction) select: (id) sender; - (IBAction) cancel: (id) sender; +- (IBAction) sliderDidChange: (id) sender; - (void)controlTextDidChange:(NSNotification *)aNotification; - (void) showOptions: (NSString *) contextInfo; diff --git a/src/kim/agent/mac/SelectIdentityController.m b/src/kim/agent/mac/SelectIdentityController.m index 897e0dcc76..eafd3d4625 100644 --- a/src/kim/agent/mac/SelectIdentityController.m +++ b/src/kim/agent/mac/SelectIdentityController.m @@ -33,16 +33,6 @@ // --------------------------------------------------------------------------- -- (id) initWithWindowNibName: (NSString *) windowNibName -{ - if ((self = [super initWithWindowNibName: windowNibName])) { - } - - return self; -} - -// --------------------------------------------------------------------------- - - (id) init { return [self initWithWindowNibName: @"SelectIdentity"]; @@ -86,10 +76,18 @@ associatedClient.name]; } [headerTextField setStringValue:message]; + [explanationTextField setStringValue:@"explanation!"]; } // --------------------------------------------------------------------------- +- (void) setContent: (NSMutableDictionary *) newContent +{ + [self window]; // wake up the nib connections +// [glueController setContent:newContent]; +} + +// --------------------------------------------------------------------------- - (IBAction) newIdentity: (id) sender { @@ -138,7 +136,8 @@ } selectedIdentity = [[identityArrayController selectedObjects] lastObject]; - [associatedClient didSelectIdentity: selectedIdentity.principalString]; + [associatedClient didSelectIdentity: selectedIdentity.principalString + options: [identityOptionsController valueForKeyPath:@"content.options"]]; } // --------------------------------------------------------------------------- @@ -146,6 +145,7 @@ - (IBAction) cancel: (id) sender { [associatedClient didCancel]; + [self close]; } // --------------------------------------------------------------------------- @@ -183,19 +183,21 @@ - (IBAction) doneOptions: (id) sender { - Identity *anIdentity = identityOptionsController.content; +// Identity *anIdentity = identityOptionsController.content; - [anIdentity setPrincipalComponents: [nameField stringValue] - realm: [realmField stringValue]]; [NSApp endSheet: identityOptionsWindow]; } +- (IBAction) sliderDidChange: (id) sender +{ + +} + - (void)controlTextDidChange:(NSNotification *)aNotification { - BOOL valid = [KIMUtilities validatePrincipalWithName:[nameField stringValue] - realm:[realmField stringValue]]; - [ticketOptionsOkButton setEnabled:valid]; +// BOOL valid = [KIMUtilities validateIdentity:]; + [ticketOptionsOkButton setEnabled:false]; [ticketOptionsOkButton setNeedsDisplay]; } @@ -205,8 +207,28 @@ { Identity *anIdentity = identityOptionsController.content; - [nameField setStringValue:anIdentity.componentsString]; - [realmField setStringValue:anIdentity.realmString]; + [identityField setStringValue:anIdentity.principalString]; + [staticIdentityField setStringValue:anIdentity.principalString]; + + // use a copy of the current options + [identityOptionsController setContent: + [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]]; + + [identityOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities minValidLifetime]] + forKeyPath:min_valid_keypath]; + [identityOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities maxValidLifetime]] + forKeyPath:max_valid_keypath]; + [identityOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities minRenewableLifetime]] + forKeyPath:min_renewable_keypath]; + [identityOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities maxRenewableLifetime]] + forKeyPath:max_renewable_keypath]; + + [validLifetimeSlider setIntegerValue: + [[identityOptionsController valueForKeyPath:valid_lifetime_keypath] integerValue]]; + [renewableLifetimeSlider setIntegerValue: + [[identityOptionsController valueForKeyPath:renewal_lifetime_keypath] integerValue]]; + [self sliderDidChange:validLifetimeSlider]; + [self sliderDidChange:renewableLifetimeSlider]; [NSApp beginSheet: identityOptionsWindow modalForWindow: [self window] diff --git a/src/kim/agent/mac/ServerDemux.m b/src/kim/agent/mac/ServerDemux.m index ea1943592d..51759801af 100644 --- a/src/kim/agent/mac/ServerDemux.m +++ b/src/kim/agent/mac/ServerDemux.m @@ -461,7 +461,7 @@ static int32_t kim_handle_request_handle_error (mach_port_t in_client_port, /* Can be empty string "" if there is no identity */ if (!err && !identity_string[0]) { k5_ipc_stream_free_string (identity_string); - identity_string = KIM_IDENTITY_ANY; + identity_string = NULL; } } diff --git a/src/kim/agent/mac/resources/English.lproj/Authentication.xib b/src/kim/agent/mac/resources/English.lproj/Authentication.xib index 06056ee68a..e5273b70c6 100644 --- a/src/kim/agent/mac/resources/English.lproj/Authentication.xib +++ b/src/kim/agent/mac/resources/English.lproj/Authentication.xib @@ -8,11 +8,7 @@ <string key="IBDocument.HIToolboxVersion">352.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="20"/> - <integer value="300314"/> - <integer value="300193"/> - <integer value="300175"/> - <integer value="300274"/> + <integer value="300157"/> <integer value="300420"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> @@ -59,6 +55,8 @@ <string>max_renewal_lifetime</string> <string>max_valid_lifetime</string> <string>min_valid_lifetime</string> + <string>identity_string</string> + <string>favorite_identity_strings</string> </object> <bool key="NSEditable">YES</bool> <object class="_NSManagedProxy" key="_NSManagedProxy"/> @@ -86,7 +84,7 @@ <object class="NSTextField" id="498665267"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">264</int> - <string key="NSFrame">{{101, 126}, {382, 54}}</string> + <string key="NSFrame">{{101, 103}, {382, 54}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="645367368"> @@ -119,18 +117,20 @@ </object> </object> </object> - <object class="NSTextField" id="409092758"> + <object class="NSComboBox" id="529434335"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">290</int> - <string key="NSFrame">{{104, 88}, {376, 22}}</string> + <string key="NSFrame">{{104, 59}, {379, 26}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="951097344"> - <int key="NSCellFlags">-1804468671</int> + <object class="NSComboBoxCell" key="NSCell" id="100557652"> + <int key="NSCellFlags">343014976</int> <int key="NSCellFlags2">272630784</int> - <string key="NSContents"/> + <object class="NSMutableString" key="NSContents" id="645290524"> + <characters key="NS.bytes"/> + </object> <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="409092758"/> + <reference key="NSControlView" ref="529434335"/> <bool key="NSDrawsBackground">YES</bool> <object class="NSColor" key="NSBackgroundColor" id="490771653"> <int key="NSColorSpace">6</int> @@ -141,49 +141,10 @@ <bytes key="NSWhite">MQA</bytes> </object> </object> - <object class="NSColor" key="NSTextColor" id="955928389"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textColor</string> - <reference key="NSColor" ref="18538584"/> - </object> - </object> - </object> - <object class="NSTextField" id="930407441"> - <reference key="NSNextResponder" ref="92892041"/> - <int key="NSvFlags">292</int> - <string key="NSFrame">{{17, 90}, {82, 17}}</string> - <reference key="NSSuperview" ref="92892041"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="990670119"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">71303168</int> - <string key="NSContents">Name:</string> - <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="930407441"/> - <reference key="NSBackgroundColor" ref="876444531"/> - <reference key="NSTextColor" ref="883746258"/> - </object> - </object> - <object class="NSComboBox" id="529434335"> - <reference key="NSNextResponder" ref="92892041"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{104, 56}, {379, 26}}</string> - <reference key="NSSuperview" ref="92892041"/> - <bool key="NSEnabled">YES</bool> - <object class="NSComboBoxCell" key="NSCell" id="100557652"> - <int key="NSCellFlags">343014976</int> - <int key="NSCellFlags2">272630784</int> - <object class="NSMutableString" key="NSContents" id="645290524"> - <characters key="NS.bytes"/> - </object> - <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="529434335"/> - <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="490771653"/> <reference key="NSTextColor" ref="883746258"/> <int key="NSVisibleItemCount">5</int> <bool key="NSHasVerticalScroller">YES</bool> + <bool key="NSCompletes">YES</bool> <reference key="NSDelegate" ref="529434335"/> <object class="NSComboTableView" key="NSTableView" id="474321365"> <reference key="NSNextResponder"/> @@ -261,13 +222,13 @@ <object class="NSTextField" id="238778309"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{17, 61}, {82, 17}}</string> + <string key="NSFrame">{{17, 64}, {82, 17}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1073582594"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">71303168</int> - <string key="NSContents">Realm:</string> + <string key="NSContents">Identity:</string> <reference key="NSSupport" ref="604532625"/> <reference key="NSControlView" ref="238778309"/> <reference key="NSBackgroundColor" ref="876444531"/> @@ -277,7 +238,7 @@ <object class="NSButton" id="207178735"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{388, 12}, {98, 32}}</string> + <string key="NSFrame">{{388, 15}, {98, 32}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="563505192"> @@ -298,7 +259,7 @@ <object class="NSButton" id="523041784"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{295, 12}, {93, 32}}</string> + <string key="NSFrame">{{295, 15}, {93, 32}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="927675304"> @@ -319,14 +280,14 @@ <object class="NSCustomView" id="1001544034"> <reference key="NSNextResponder" ref="92892041"/> <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="92892041"/> <string key="NSClassName">BadgedImageView</string> </object> <object class="NSPopUpButton" id="1016187493"> <reference key="NSNextResponder" ref="92892041"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{20, 17}, {38, 26}}</string> + <string key="NSFrame">{{20, 20}, {38, 26}}</string> <reference key="NSSuperview" ref="92892041"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="690863814"> @@ -420,7 +381,7 @@ </object> </object> </object> - <string key="NSFrameSize">{500, 210}</string> + <string key="NSFrameSize">{500, 187}</string> <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> @@ -434,6 +395,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{104, 82}, {376, 22}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="508869457"> <int key="NSCellFlags">-1804468671</int> @@ -443,7 +405,12 @@ <reference key="NSControlView" ref="225475172"/> <bool key="NSDrawsBackground">YES</bool> <reference key="NSBackgroundColor" ref="490771653"/> - <reference key="NSTextColor" ref="955928389"/> + <object class="NSColor" key="NSTextColor" id="955928389"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textColor</string> + <reference key="NSColor" ref="18538584"/> + </object> </object> </object> <object class="NSButton" id="133507311"> @@ -451,6 +418,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{388, 12}, {98, 32}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="200893597"> <int key="NSCellFlags">67239424</int> @@ -472,6 +440,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{295, 12}, {93, 32}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="935364959"> <int key="NSCellFlags">67239424</int> @@ -493,6 +462,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{101, 126}, {382, 41}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="999660494"> <int key="NSCellFlags">67239424</int> @@ -509,6 +479,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{17, 84}, {80, 17}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="916263740"> <int key="NSCellFlags">68288064</int> @@ -525,6 +496,7 @@ <int key="NSvFlags">290</int> <string key="NSFrame">{{102, 58}, {380, 18}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="883697888"> <int key="NSCellFlags">-2080244224</int> @@ -552,15 +524,17 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{20, 126}, {64, 64}}</string> <reference key="NSSuperview" ref="866582848"/> + <reference key="NSWindow"/> <string key="NSClassName">BadgedImageView</string> </object> </object> <string key="NSFrameSize">{500, 210}</string> <reference key="NSSuperview"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="898191415"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">274</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -684,11 +658,10 @@ </object> </object> <string key="NSFrameSize">{500, 210}</string> - <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="60326189"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">286</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -877,7 +850,6 @@ </object> </object> <string key="NSFrameSize">{500, 230}</string> - <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="861423802"> @@ -967,10 +939,9 @@ <string key="NSWindowContentMaxSize">{600, 400}</string> <string key="NSWindowContentMinSize">{484, 199}</string> <object class="NSView" key="NSWindowView" id="632526042"> - <reference key="NSNextResponder"/> + <nil 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> @@ -1210,28 +1181,15 @@ <string key="NSMinSize">{430, 305}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> + <object class="NSCustomObject" id="752049494"> + <string key="NSClassName">KerberosTimeFormatter</string> + </object> </object> <object class="IBObjectContainer" key="IBDocument.Objects"> <object class="NSMutableArray" key="connectionRecords"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">nextKeyView</string> - <reference key="source" ref="409092758"/> - <reference key="destination" ref="529434335"/> - </object> - <int key="connectionID">300173</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">nextKeyView</string> - <reference key="source" ref="529434335"/> - <reference key="destination" ref="409092758"/> - </object> - <int key="connectionID">300174</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">identityView</string> <reference key="source" ref="262677138"/> <reference key="destination" ref="92892041"/> @@ -1328,22 +1286,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">contentValues: selection.realm_history</string> - <reference key="source" ref="529434335"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector" id="756729013"> - <reference key="NSSource" ref="529434335"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">contentValues: selection.realm_history</string> - <string key="NSBinding">contentValues</string> - <string key="NSKeyPath">selection.realm_history</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300342</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">value: selection.message</string> <reference key="source" ref="498665267"/> <reference key="destination" ref="57033499"/> @@ -1376,47 +1318,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.username</string> - <reference key="source" ref="409092758"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="409092758"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">value: selection.username</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.username</string> - <object class="NSDictionary" key="NSOptions"> - <string key="NS.key.0">NSContinuouslyUpdatesValue</string> - <integer value="1" key="NS.object.0" id="9"/> - </object> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300349</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.realm</string> - <reference key="source" ref="529434335"/> - <reference key="destination" ref="57033499"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="529434335"/> - <reference key="NSDestination" ref="57033499"/> - <string key="NSLabel">value: selection.realm</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.realm</string> - <object class="NSDictionary" key="NSOptions"> - <string key="NS.key.0">NSContinuouslyUpdatesValue</string> - <reference key="NS.object.0" ref="9"/> - </object> - <reference key="NSPreviousConnector" ref="756729013"/> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300350</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">enabled: selection.isPrincipalValid</string> <reference key="source" ref="207178735"/> <reference key="destination" ref="57033499"/> @@ -1433,14 +1334,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">usernameField</string> - <reference key="source" ref="262677138"/> - <reference key="destination" ref="409092758"/> - </object> - <int key="connectionID">300352</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">enterBadge</string> <reference key="source" ref="262677138"/> <reference key="destination" ref="1001544034"/> @@ -1516,7 +1409,7 @@ <string key="NSKeyPath">selection.prompt_response</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSContinuouslyUpdatesValue</string> - <reference key="NS.object.0" ref="9"/> + <integer value="1" key="NS.object.0" id="9"/> </object> <int key="NSNibBindingConnectorVersion">2</int> </object> @@ -2026,38 +1919,6 @@ <int key="connectionID">300497</int> </object> <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.renewal_lifetime</string> - <reference key="source" ref="332956369"/> - <reference key="destination" ref="633725892"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="332956369"/> - <reference key="NSDestination" ref="633725892"/> - <string key="NSLabel">value: selection.renewal_lifetime</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.renewal_lifetime</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300500</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.valid_lifetime</string> - <reference key="source" ref="523287828"/> - <reference key="destination" ref="633725892"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="523287828"/> - <reference key="NSDestination" ref="633725892"/> - <string key="NSLabel">value: selection.valid_lifetime</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.valid_lifetime</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300501</int> - </object> - <object class="IBConnectionRecord"> <object class="IBActionConnection" key="connection"> <string key="label">showTicketOptions:</string> <reference key="source" ref="262677138"/> @@ -2113,6 +1974,115 @@ </object> <int key="connectionID">300509</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">formatter</string> + <reference key="source" ref="332956369"/> + <reference key="destination" ref="752049494"/> + </object> + <int key="connectionID">300511</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">identityField</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="529434335"/> + </object> + <int key="connectionID">300513</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">contentValues: selection.favorite_identity_strings</string> + <reference key="source" ref="529434335"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector" id="407856422"> + <reference key="NSSource" ref="529434335"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">contentValues: selection.favorite_identity_strings</string> + <string key="NSBinding">contentValues</string> + <string key="NSKeyPath">selection.favorite_identity_strings</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300515</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: selection.identity_string</string> + <reference key="source" ref="529434335"/> + <reference key="destination" ref="57033499"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="529434335"/> + <reference key="NSDestination" ref="57033499"/> + <string key="NSLabel">value: selection.identity_string</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">selection.identity_string</string> + <object class="NSDictionary" key="NSOptions"> + <string key="NS.key.0">NSContinuouslyUpdatesValue</string> + <integer value="1" key="NS.object.0" id="5"/> + </object> + <reference key="NSPreviousConnector" ref="407856422"/> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300516</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: selection.valid_lifetime</string> + <reference key="source" ref="523287828"/> + <reference key="destination" ref="633725892"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="523287828"/> + <reference key="NSDestination" ref="633725892"/> + <string key="NSLabel">value: selection.valid_lifetime</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">selection.valid_lifetime</string> + <object class="NSDictionary" key="NSOptions"> + <string key="NS.key.0">NSContinuouslyUpdatesValue</string> + <reference key="NS.object.0" ref="5"/> + </object> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300517</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: selection.renewal_lifetime</string> + <reference key="source" ref="332956369"/> + <reference key="destination" ref="633725892"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="332956369"/> + <reference key="NSDestination" ref="633725892"/> + <string key="NSLabel">value: selection.renewal_lifetime</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">selection.renewal_lifetime</string> + <object class="NSDictionary" key="NSOptions"> + <string key="NS.key.0">NSContinuouslyUpdatesValue</string> + <reference key="NS.object.0" ref="5"/> + </object> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300518</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">lifetimeFormatter</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="752049494"/> + </object> + <int key="connectionID">300519</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">formatter</string> + <reference key="source" ref="523287828"/> + <reference key="destination" ref="752049494"/> + </object> + <int key="connectionID">300520</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -2169,8 +2139,6 @@ <reference ref="523041784"/> <reference ref="207178735"/> <reference ref="238778309"/> - <reference ref="409092758"/> - <reference ref="930407441"/> <reference ref="1001544034"/> <reference ref="529434335"/> <reference ref="498665267"/> @@ -2207,24 +2175,6 @@ <reference key="parent" ref="92892041"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300159</int> - <reference key="object" ref="409092758"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="951097344"/> - </object> - <reference key="parent" ref="92892041"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300160</int> - <reference key="object" ref="930407441"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="990670119"/> - </object> - <reference key="parent" ref="92892041"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300165</int> <reference key="object" ref="1001544034"/> <reference key="parent" ref="92892041"/> @@ -2258,16 +2208,6 @@ <reference key="parent" ref="529434335"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300170</int> - <reference key="object" ref="990670119"/> - <reference key="parent" ref="930407441"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300171</int> - <reference key="object" ref="951097344"/> - <reference key="parent" ref="409092758"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300168</int> <reference key="object" ref="1073582594"/> <reference key="parent" ref="238778309"/> @@ -2791,9 +2731,9 @@ <reference ref="964499406"/> <reference ref="198913348"/> <reference ref="594182616"/> - <reference ref="523287828"/> <reference ref="318596865"/> <reference ref="486016405"/> + <reference ref="523287828"/> </object> <reference key="parent" ref="102029948"/> </object> @@ -2953,6 +2893,11 @@ <reference key="object" ref="744766544"/> <reference key="parent" ref="594991555"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">300510</int> + <reference key="object" ref="752049494"/> + <reference key="parent" ref="0"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -2977,10 +2922,6 @@ <string>300157.IBPluginDependency</string> <string>300158.IBPluginDependency</string> <string>300158.ImportedFromIB2</string> - <string>300159.IBPluginDependency</string> - <string>300159.ImportedFromIB2</string> - <string>300160.IBPluginDependency</string> - <string>300160.ImportedFromIB2</string> <string>300161.IBPluginDependency</string> <string>300161.ImportedFromIB2</string> <string>300162.IBPluginDependency</string> @@ -3098,6 +3039,7 @@ <string>300464.IBPluginDependency</string> <string>300469.IBPluginDependency</string> <string>300502.IBPluginDependency</string> + <string>300510.IBPluginDependency</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3115,7 +3057,7 @@ <string>{484, 199}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{602, 432}, {500, 210}}</string> + <string>{{602, 455}, {500, 187}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> @@ -3126,10 +3068,6 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{477, 611}, {500, 210}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>NSSecureTextField</string> @@ -3207,9 +3145,9 @@ <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{979, 209}, {430, 283}}</string> + <string>{{647, 412}, {430, 283}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{979, 209}, {430, 283}}</string> + <string>{{647, 412}, {430, 283}}</string> <reference ref="9"/> <reference ref="8"/> <reference ref="9"/> @@ -3240,6 +3178,7 @@ <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"> @@ -3262,7 +3201,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">300509</int> + <int key="maxID">300520</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -3309,7 +3248,9 @@ <string>errorView</string> <string>expiredPasswordView</string> <string>glueController</string> + <string>identityField</string> <string>identityView</string> + <string>lifetimeFormatter</string> <string>oldPasswordField</string> <string>passwordBadge</string> <string>passwordField</string> @@ -3321,7 +3262,6 @@ <string>samView</string> <string>ticketOptionsController</string> <string>ticketOptionsSheet</string> - <string>usernameField</string> <string>validLifetimeSlider</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -3334,7 +3274,9 @@ <string>NSView</string> <string>NSView</string> <string>NSObjectController</string> + <string>NSTextField</string> <string>NSView</string> + <string>KerberosTimeFormatter</string> <string>NSTextField</string> <string>BadgedImageView</string> <string>NSTextField</string> @@ -3346,7 +3288,6 @@ <string>NSView</string> <string>NSObjectController</string> <string>NSWindow</string> - <string>NSTextField</string> <string>NSSlider</string> </object> </object> @@ -3371,6 +3312,14 @@ <string key="minorKey"/> </object> </object> + <object class="IBPartialClassDescription"> + <string key="className">KerberosTimeFormatter</string> + <string key="superclassName">NSFormatter</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../Sources/kim/agent/mac/KerberosFormatters.h</string> + </object> + </object> </object> </object> <int key="IBDocument.localizationMode">0</int> diff --git a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib index 3a1fb160ef..d38d944c9d 100644 --- a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib +++ b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib @@ -8,8 +8,8 @@ <string key="IBDocument.HIToolboxVersion">352.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="300295"/> <integer value="6"/> + <integer value="300301"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -505,7 +505,7 @@ <object class="NSWindowTemplate" id="370461416"> <int key="NSWindowStyleMask">7</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 132}, {427, 378}}</string> + <string key="NSWindowRect">{{196, 162}, {427, 348}}</string> <int key="NSWTFlags">603979776</int> <string key="NSWindowTitle">Window</string> <string key="NSWindowClass">NSWindow</string> @@ -519,7 +519,7 @@ <object class="NSTextField" id="485004197"> <reference key="NSNextResponder" ref="1019868804"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{69, 336}, {338, 22}}</string> + <string key="NSFrame">{{78, 306}, {338, 22}}</string> <reference key="NSSuperview" ref="1019868804"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1047482753"> @@ -536,7 +536,7 @@ <string key="NSColorName">textBackgroundColor</string> <reference key="NSColor" ref="591379363"/> </object> - <object class="NSColor" key="NSTextColor" id="894652286"> + <object class="NSColor" key="NSTextColor"> <int key="NSColorSpace">6</int> <string key="NSCatalogName">System</string> <string key="NSColorName">textColor</string> @@ -547,53 +547,19 @@ <object class="NSTextField" id="404880622"> <reference key="NSNextResponder" ref="1019868804"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{19, 338}, {45, 17}}</string> + <string key="NSFrame">{{17, 308}, {60, 17}}</string> <reference key="NSSuperview" ref="1019868804"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="775341038"> <int key="NSCellFlags">68288064</int> <int key="NSCellFlags2">71304192</int> - <string key="NSContents">Name:</string> + <string key="NSContents">Identity: </string> <reference key="NSSupport" ref="604532625"/> <reference key="NSControlView" ref="404880622"/> <reference key="NSBackgroundColor" ref="876444531"/> <reference key="NSTextColor" ref="883746258"/> </object> </object> - <object class="NSTextField" id="623163777"> - <reference key="NSNextResponder" ref="1019868804"/> - <int key="NSvFlags">266</int> - <string key="NSFrame">{{69, 306}, {338, 22}}</string> - <reference key="NSSuperview" ref="1019868804"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="327568348"> - <int key="NSCellFlags">-1804468671</int> - <int key="NSCellFlags2">272630784</int> - <string key="NSContents"/> - <reference key="NSSupport" ref="604532625"/> - <string key="NSPlaceholderString">REALM.ORG</string> - <reference key="NSControlView" ref="623163777"/> - <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="830301085"/> - <reference key="NSTextColor" ref="894652286"/> - </object> - </object> - <object class="NSTextField" id="609534695"> - <reference key="NSNextResponder" ref="1019868804"/> - <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 308}, {47, 17}}</string> - <reference key="NSSuperview" ref="1019868804"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="424319976"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">71304192</int> - <string key="NSContents">Realm:</string> - <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="609534695"/> - <reference key="NSBackgroundColor" ref="876444531"/> - <reference key="NSTextColor" ref="883746258"/> - </object> - </object> <object class="NSBox" id="282101470"> <reference key="NSNextResponder" ref="1019868804"/> <int key="NSvFlags">266</int> @@ -873,7 +839,7 @@ <object class="NSTextField" id="958176038"> <reference key="NSNextResponder" ref="1019868804"/> <int key="NSvFlags">-2147483380</int> - <string key="NSFrame">{{66, 338}, {344, 17}}</string> + <string key="NSFrame">{{75, 308}, {344, 17}}</string> <reference key="NSSuperview" ref="1019868804"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="196100637"> @@ -886,24 +852,8 @@ <reference key="NSTextColor" ref="883746258"/> </object> </object> - <object class="NSTextField" id="546844125"> - <reference key="NSNextResponder" ref="1019868804"/> - <int key="NSvFlags">-2147483380</int> - <string key="NSFrame">{{66, 308}, {344, 17}}</string> - <reference key="NSSuperview" ref="1019868804"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="725579124"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">272630784</int> - <string key="NSContents">Label</string> - <reference key="NSSupport" ref="604532625"/> - <reference key="NSControlView" ref="546844125"/> - <reference key="NSBackgroundColor" ref="876444531"/> - <reference key="NSTextColor" ref="883746258"/> - </object> - </object> </object> - <string key="NSFrameSize">{427, 378}</string> + <string key="NSFrameSize">{427, 348}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> @@ -912,23 +862,28 @@ <object class="NSObjectController" id="196152721"> <object class="NSMutableArray" key="NSDeclaredKeys"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>realmString</string> - <string>isForwardable</string> - <string>isProxiable</string> - <string>isRenewable</string> + <string>forwardable</string> + <string>renewable</string> <string>renewableLifetime</string> - <string>componentsString</string> + <string>identityString</string> <string>favorite</string> - <string>isAddressless</string> + <string>addressless</string> <string>validLifetime</string> <string>renewableLifetimeString</string> <string>validLifetimeString</string> <string>hasCCache</string> + <string>minValidLifetime</string> + <string>maxValidLifetime</string> + <string>maxRenewableLifetime</string> </object> <string key="NSObjectClassName">Identity</string> <bool key="NSEditable">YES</bool> <object class="_NSManagedProxy" key="_NSManagedProxy"/> </object> + <object class="NSObjectController" id="252123121"> + <bool key="NSEditable">YES</bool> + <object class="_NSManagedProxy" key="_NSManagedProxy"/> + </object> <object class="NSObjectController" id="1031761104"> <object class="NSMutableArray" key="NSDeclaredKeys"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -938,6 +893,7 @@ <string>maximumRenewableLifetime</string> <string>favorite</string> <string>identities</string> + <string>minRenewableLifetime</string> </object> <string key="NSObjectClassName">Identities</string> <object class="_NSManagedProxy" key="_NSManagedProxy"/> @@ -1277,56 +1233,6 @@ <int key="connectionID">300369</int> </object> <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">maxValue: selection.maximumValidLifetime</string> - <reference key="source" ref="552234083"/> - <reference key="destination" ref="1031761104"/> - <object class="NSNibBindingConnector" key="connector" id="716397596"> - <reference key="NSSource" ref="552234083"/> - <reference key="NSDestination" ref="1031761104"/> - <string key="NSLabel">maxValue: selection.maximumValidLifetime</string> - <string key="NSBinding">maxValue</string> - <string key="NSKeyPath">selection.maximumValidLifetime</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300372</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">minValue: selection.minimumValidLifetime</string> - <reference key="source" ref="552234083"/> - <reference key="destination" ref="1031761104"/> - <object class="NSNibBindingConnector" key="connector" id="445222138"> - <reference key="NSSource" ref="552234083"/> - <reference key="NSDestination" ref="1031761104"/> - <string key="NSLabel">minValue: selection.minimumValidLifetime</string> - <string key="NSBinding">minValue</string> - <string key="NSKeyPath">selection.minimumValidLifetime</string> - <reference key="NSPreviousConnector" ref="716397596"/> - <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.validLifetime</string> - <reference key="source" ref="552234083"/> - <reference key="destination" ref="196152721"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="552234083"/> - <reference key="NSDestination" ref="196152721"/> - <string key="NSLabel">value: selection.validLifetime</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.validLifetime</string> - <reference key="NSPreviousConnector" ref="445222138"/> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300378</int> - </object> - <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">identitiesController</string> <reference key="source" ref="262677138"/> @@ -1336,56 +1242,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">maxValue: selection.maximumRenewableLifetime</string> - <reference key="source" ref="373804676"/> - <reference key="destination" ref="1031761104"/> - <object class="NSNibBindingConnector" key="connector" id="436583425"> - <reference key="NSSource" ref="373804676"/> - <reference key="NSDestination" ref="1031761104"/> - <string key="NSLabel">maxValue: selection.maximumRenewableLifetime</string> - <string key="NSBinding">maxValue</string> - <string key="NSKeyPath">selection.maximumRenewableLifetime</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300381</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">minValue: selection.minimumRenewableLifetime</string> - <reference key="source" ref="373804676"/> - <reference key="destination" ref="1031761104"/> - <object class="NSNibBindingConnector" key="connector" id="601981852"> - <reference key="NSSource" ref="373804676"/> - <reference key="NSDestination" ref="1031761104"/> - <string key="NSLabel">minValue: selection.minimumRenewableLifetime</string> - <string key="NSBinding">minValue</string> - <string key="NSKeyPath">selection.minimumRenewableLifetime</string> - <reference key="NSPreviousConnector" ref="436583425"/> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300384</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.renewableLifetime</string> - <reference key="source" ref="373804676"/> - <reference key="destination" ref="196152721"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="373804676"/> - <reference key="NSDestination" ref="196152721"/> - <string key="NSLabel">value: selection.renewableLifetime</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.renewableLifetime</string> - <reference key="NSPreviousConnector" ref="601981852"/> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300385</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">value: selection.renewableLifetimeString</string> <reference key="source" ref="956800130"/> <reference key="destination" ref="196152721"/> @@ -1417,22 +1273,6 @@ <int key="connectionID">300388</int> </object> <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">nameField</string> - <reference key="source" ref="262677138"/> - <reference key="destination" ref="485004197"/> - </object> - <int key="connectionID">300396</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">realmField</string> - <reference key="source" ref="262677138"/> - <reference key="destination" ref="623163777"/> - </object> - <int key="connectionID">300397</int> - </object> - <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> <string key="label">value: selection.componentsString</string> <reference key="source" ref="958176038"/> @@ -1450,58 +1290,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">value: selection.realmString</string> - <reference key="source" ref="546844125"/> - <reference key="destination" ref="196152721"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="546844125"/> - <reference key="NSDestination" ref="196152721"/> - <string key="NSLabel">value: selection.realmString</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">selection.realmString</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300411</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: selection.hasCCache</string> - <reference key="source" ref="623163777"/> - <reference key="destination" ref="196152721"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="623163777"/> - <reference key="NSDestination" ref="196152721"/> - <string key="NSLabel">hidden: selection.hasCCache</string> - <string key="NSBinding">hidden</string> - <string key="NSKeyPath">selection.hasCCache</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300419</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: selection.hasCCache</string> - <reference key="source" ref="546844125"/> - <reference key="destination" ref="196152721"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="546844125"/> - <reference key="NSDestination" ref="196152721"/> - <string key="NSLabel">hidden: selection.hasCCache</string> - <string key="NSBinding">hidden</string> - <string key="NSKeyPath">selection.hasCCache</string> - <object class="NSDictionary" key="NSOptions"> - <string key="NS.key.0">NSValueTransformerName</string> - <string key="NS.object.0">NSNegateBoolean</string> - </object> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">300420</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">hidden: selection.hasCCache</string> <reference key="source" ref="958176038"/> <reference key="destination" ref="196152721"/> @@ -1663,18 +1451,124 @@ <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">delegate</string> - <reference key="source" ref="623163777"/> + <reference key="source" ref="485004197"/> <reference key="destination" ref="262677138"/> </object> - <int key="connectionID">300460</int> + <int key="connectionID">300461</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">maxValue: selection.maxValidLifetime</string> + <reference key="source" ref="552234083"/> + <reference key="destination" ref="196152721"/> + <object class="NSNibBindingConnector" key="connector" id="1045274898"> + <reference key="NSSource" ref="552234083"/> + <reference key="NSDestination" ref="196152721"/> + <string key="NSLabel">maxValue: selection.maxValidLifetime</string> + <string key="NSBinding">maxValue</string> + <string key="NSKeyPath">selection.maxValidLifetime</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300470</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">minValue: selection.minValidLifetime</string> + <reference key="source" ref="552234083"/> + <reference key="destination" ref="196152721"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="552234083"/> + <reference key="NSDestination" ref="196152721"/> + <string key="NSLabel">minValue: selection.minValidLifetime</string> + <string key="NSBinding">minValue</string> + <string key="NSKeyPath">selection.minValidLifetime</string> + <reference key="NSPreviousConnector" ref="1045274898"/> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300471</int> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="485004197"/> - <reference key="destination" ref="262677138"/> + <string key="label">validLifetimeSlider</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="552234083"/> </object> - <int key="connectionID">300461</int> + <int key="connectionID">300473</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">renewableLifetimeSlider</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="373804676"/> + </object> + <int key="connectionID">300474</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">sliderDidChange:</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="552234083"/> + </object> + <int key="connectionID">300475</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">sliderDidChange:</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="373804676"/> + </object> + <int key="connectionID">300476</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">maxValue: selection.maxRenewableLifetime</string> + <reference key="source" ref="373804676"/> + <reference key="destination" ref="196152721"/> + <object class="NSNibBindingConnector" key="connector" id="992990082"> + <reference key="NSSource" ref="373804676"/> + <reference key="NSDestination" ref="196152721"/> + <string key="NSLabel">maxValue: selection.maxRenewableLifetime</string> + <string key="NSBinding">maxValue</string> + <string key="NSKeyPath">selection.maxRenewableLifetime</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300481</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">minValue: selection.minRenewableLifetime</string> + <reference key="source" ref="373804676"/> + <reference key="destination" ref="196152721"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="373804676"/> + <reference key="NSDestination" ref="196152721"/> + <string key="NSLabel">minValue: selection.minRenewableLifetime</string> + <string key="NSBinding">minValue</string> + <string key="NSKeyPath">selection.minRenewableLifetime</string> + <reference key="NSPreviousConnector" ref="992990082"/> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">300482</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">staticIdentityField</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="958176038"/> + </object> + <int key="connectionID">300483</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">identityField</string> + <reference key="source" ref="262677138"/> + <reference key="destination" ref="485004197"/> + </object> + <int key="connectionID">300484</int> </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> @@ -1920,16 +1814,13 @@ <reference key="object" ref="1019868804"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="609534695"/> - <reference ref="623163777"/> - <reference ref="404880622"/> - <reference ref="485004197"/> <reference ref="932240937"/> <reference ref="871834199"/> <reference ref="282101470"/> <reference ref="669516699"/> <reference ref="958176038"/> - <reference ref="546844125"/> + <reference ref="485004197"/> + <reference ref="404880622"/> </object> <reference key="parent" ref="370461416"/> </object> @@ -1951,24 +1842,6 @@ <reference key="parent" ref="1019868804"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300298</int> - <reference key="object" ref="609534695"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="424319976"/> - </object> - <reference key="parent" ref="1019868804"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300299</int> - <reference key="object" ref="623163777"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="327568348"/> - </object> - <reference key="parent" ref="1019868804"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300300</int> <reference key="object" ref="404880622"/> <object class="NSMutableArray" key="children"> @@ -1997,16 +1870,6 @@ <reference key="parent" ref="404880622"/> </object> <object class="IBObjectRecord"> - <int key="objectID">300304</int> - <reference key="object" ref="327568348"/> - <reference key="parent" ref="623163777"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300305</int> - <reference key="object" ref="424319976"/> - <reference key="parent" ref="609534695"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300307</int> <reference key="object" ref="373804676"/> <object class="NSMutableArray" key="children"> @@ -2187,34 +2050,6 @@ <string key="objectName">Identities Controller</string> </object> <object class="IBObjectRecord"> - <int key="objectID">300402</int> - <reference key="object" ref="958176038"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="196100637"/> - </object> - <reference key="parent" ref="1019868804"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300403</int> - <reference key="object" ref="196100637"/> - <reference key="parent" ref="958176038"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300407</int> - <reference key="object" ref="546844125"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="725579124"/> - </object> - <reference key="parent" ref="1019868804"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">300408</int> - <reference key="object" ref="725579124"/> - <reference key="parent" ref="546844125"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">300426</int> <reference key="object" ref="263312988"/> <object class="NSMutableArray" key="children"> @@ -2264,6 +2099,26 @@ <reference key="object" ref="778570067"/> <reference key="parent" ref="600123164"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">300402</int> + <reference key="object" ref="958176038"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="196100637"/> + </object> + <reference key="parent" ref="1019868804"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300403</int> + <reference key="object" ref="196100637"/> + <reference key="parent" ref="958176038"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">300462</int> + <reference key="object" ref="252123121"/> + <reference key="parent" ref="0"/> + <string key="objectName">Glue Controller</string> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -2306,14 +2161,10 @@ <string>300295.IBPluginDependency</string> <string>300296.IBPluginDependency</string> <string>300296.ImportedFromIB2</string> - <string>300298.IBPluginDependency</string> - <string>300299.IBPluginDependency</string> <string>300300.IBPluginDependency</string> <string>300301.IBPluginDependency</string> <string>300302.IBPluginDependency</string> <string>300303.IBPluginDependency</string> - <string>300304.IBPluginDependency</string> - <string>300305.IBPluginDependency</string> <string>300307.IBPluginDependency</string> <string>300307.ImportedFromIB2</string> <string>300308.IBPluginDependency</string> @@ -2342,8 +2193,6 @@ <string>300370.IBPluginDependency</string> <string>300402.IBPluginDependency</string> <string>300403.IBPluginDependency</string> - <string>300407.IBPluginDependency</string> - <string>300408.IBPluginDependency</string> <string>300426.IBPluginDependency</string> <string>300427.IBPluginDependency</string> <string>300428.IBEditorWindowLastContentRect</string> @@ -2352,6 +2201,7 @@ <string>300430.IBPluginDependency</string> <string>300431.IBPluginDependency</string> <string>300432.IBPluginDependency</string> + <string>300462.IBPluginDependency</string> <string>5.IBEditorWindowLastContentRect</string> <string>5.IBPluginDependency</string> <string>5.IBWindowTemplateEditedContentRect</string> @@ -2396,9 +2246,9 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{553, 305}, {427, 378}}</string> + <string>{{553, 335}, {427, 348}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{553, 305}, {427, 378}}</string> + <string>{{553, 335}, {427, 348}}</string> <reference ref="75542549"/> <reference ref="75542549"/> <string>{10000, 354}</string> @@ -2410,10 +2260,6 @@ <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> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> @@ -2443,14 +2289,13 @@ <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>{{535, 102}, {198, 83}}</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>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{499, 142}, {491, 316}}</string> @@ -2487,7 +2332,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">300461</int> + <int key="maxID">300484</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -2537,6 +2382,7 @@ <string>removeFromFavorites:</string> <string>resetOptions:</string> <string>select:</string> + <string>sliderDidChange:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2549,6 +2395,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -2559,18 +2406,20 @@ <string>addIdentityButton</string> <string>cancelButton</string> <string>explanationTextField</string> + <string>glueController</string> <string>headerTextField</string> <string>identitiesController</string> <string>identityArrayController</string> + <string>identityField</string> <string>identityOptionsController</string> <string>identityOptionsWindow</string> - <string>identityTableColumn</string> <string>identityTableView</string> <string>kerberosIconImageView</string> - <string>nameField</string> - <string>realmField</string> + <string>renewableLifetimeSlider</string> <string>selectIdentityButton</string> + <string>staticIdentityField</string> <string>ticketOptionsOkButton</string> + <string>validLifetimeSlider</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2578,18 +2427,20 @@ <string>NSButton</string> <string>NSButton</string> <string>NSTextField</string> + <string>NSObjectController</string> <string>NSTextField</string> <string>NSObjectController</string> <string>NSArrayController</string> + <string>NSTextField</string> <string>NSObjectController</string> <string>NSWindow</string> - <string>NSTableColumn</string> <string>NSTableView</string> <string>BadgedImageView</string> - <string>NSTextField</string> - <string>NSTextField</string> + <string>NSSlider</string> <string>NSButton</string> + <string>NSTextField</string> <string>NSButton</string> + <string>NSSlider</string> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> |