From: Justin Anderson Date: Thu, 16 Oct 2008 01:44:39 +0000 (+0000) Subject: Make it possible to make identities use default ticket options X-Git-Tag: krb5-1.7-alpha1~302 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a6474a9a779d48b8940438d47dafc49519f4cfe8;p=krb5.git Make it possible to make identities use default ticket options - Made KerberosAgent compatible with KIM's way of passing about NULL to mean "Use default options" - Added "Use default ticket options" checkbox to both ticket options dialogs. - Hid ticket options of select identity dialog by default, visible via the "Show Options" "Hide Options" toggle. ticket:6147 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20878 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/kim/agent/mac/AuthenticationController.h b/src/kim/agent/mac/AuthenticationController.h index 489fd20e5..0881f3fc1 100644 --- a/src/kim/agent/mac/AuthenticationController.h +++ b/src/kim/agent/mac/AuthenticationController.h @@ -92,6 +92,7 @@ - (IBAction) changePassword: (id) sender; - (IBAction) showedError: (id) sender; +- (IBAction) checkboxDidChange: (id) sender; - (IBAction) sliderDidChange: (id) sender; - (IBAction) showTicketOptions: (id) sender; diff --git a/src/kim/agent/mac/AuthenticationController.m b/src/kim/agent/mac/AuthenticationController.m index 20c971796..eeae53c8f 100644 --- a/src/kim/agent/mac/AuthenticationController.m +++ b/src/kim/agent/mac/AuthenticationController.m @@ -395,6 +395,19 @@ [self showWindow:nil]; } +- (IBAction) checkboxDidChange: (id) sender +{ + if ([[ticketOptionsController valueForKeyPath:uses_default_options_keypath] boolValue]) { + // merge defaults onto current options + NSMutableDictionary *currentOptions = [ticketOptionsController content]; + NSDictionary *defaultOptions = [KIMUtilities dictionaryForKimOptions:NULL]; + [currentOptions addEntriesFromDictionary:defaultOptions]; + // update the sliders, since their values aren't bound + [validLifetimeSlider setDoubleValue:[[ticketOptionsController valueForKeyPath:valid_lifetime_keypath] doubleValue]]; + [renewableLifetimeSlider setDoubleValue:[[ticketOptionsController valueForKeyPath:renewal_lifetime_keypath] doubleValue]]; + } +} + - (IBAction) sliderDidChange: (id) sender { NSInteger increment = 0; @@ -429,13 +442,12 @@ options = [favoriteOptions objectForKey:expandedString]; } - // else fallback to options passed from client - // use a copy of the current options + // else, it's not a favorite identity. use default options if (!options) { - options = [[[glueController valueForKeyPath:options_keypath] mutableCopy] autorelease]; + options = [KIMUtilities dictionaryForKimOptions:KIM_OPTIONS_DEFAULT]; } - [ticketOptionsController setContent:options]; + [ticketOptionsController setContent:[[options mutableCopy] autorelease]]; [ticketOptionsController setValue:[NSNumber numberWithInteger:[KIMUtilities minValidLifetime]] forKeyPath:min_valid_keypath]; @@ -504,12 +516,11 @@ } if (!identity) { err = KIM_BAD_PRINCIPAL_STRING_ERR; } - if (!options) { err = KIM_BAD_OPTIONS_ERR; } - if (!err && identity) { + if (!err) { err = kim_preferences_remove_favorite_identity(prefs, identity); } - if (!err && identity && options) { + if (!err) { err = kim_preferences_add_favorite_identity(prefs, identity, options); } if (!err) { diff --git a/src/kim/agent/mac/Identities.m b/src/kim/agent/mac/Identities.m index ae9cea86b..13c7578f7 100644 --- a/src/kim/agent/mac/Identities.m +++ b/src/kim/agent/mac/Identities.m @@ -48,41 +48,7 @@ { NSMutableSet *result = [[super keyPathsForValuesAffectingValueForKey:key] mutableCopy]; NSSet *otherKeys = nil; - -// if ([key isEqualToString:@"principalString"]) { -// otherKeys = [NSSet setWithObjects:@"kimIdentity", nil]; -// } -// else if ([key isEqualToString:@"expirationDate"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; -// } -// else if ([key isEqualToString:@"expirationString"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", @"state", @"expirationTime", nil]; -// } -// else if ([key isEqualToString:@"isProxiable"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"isForwardable"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"isAddressless"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"isRenewable"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"validLifetime"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"renewableLifetime"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", nil]; -// } -// else if ([key isEqualToString:@"validLifetimeString"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", @"validLifetime", nil]; -// } -// else if ([key isEqualToString:@"renewableLifetimeString"]) { -// otherKeys = [NSSet setWithObjects:@"kimOptions", @"renewableLifetime", nil]; -// } - + [result unionSet:otherKeys]; return [result autorelease]; diff --git a/src/kim/agent/mac/KIMUtilities.h b/src/kim/agent/mac/KIMUtilities.h index b3b201456..e2a1ee28d 100644 --- a/src/kim/agent/mac/KIMUtilities.h +++ b/src/kim/agent/mac/KIMUtilities.h @@ -53,6 +53,7 @@ #define options_keypath @"content.options" +#define uses_default_options_keypath @"content.usesDefaultTicketOptions" #define valid_lifetime_keypath @"content.valid_lifetime" #define renewal_lifetime_keypath @"content.renewal_lifetime" #define renewable_keypath @"content.renewable" diff --git a/src/kim/agent/mac/KIMUtilities.m b/src/kim/agent/mac/KIMUtilities.m index 34ff38e7f..320ccdd8e 100644 --- a/src/kim/agent/mac/KIMUtilities.m +++ b/src/kim/agent/mac/KIMUtilities.m @@ -109,6 +109,7 @@ + (NSDictionary *) dictionaryForKimOptions: (kim_options) options { kim_error err = KIM_NO_ERROR; + kim_preferences prefs = NULL; NSMutableDictionary *newDict = [NSMutableDictionary dictionaryWithCapacity:8]; kim_boolean addressless = FALSE; kim_boolean forwardable = FALSE; @@ -119,6 +120,15 @@ kim_string service_name = NULL; kim_time start_time = 0; + if (options == KIM_OPTIONS_DEFAULT) { + [newDict setObject:[NSNumber numberWithBool:YES] + forKey:@"usesDefaultTicketOptions"]; + err = kim_preferences_create(&prefs); + if (!err) { + err = kim_preferences_get_options(prefs, &options); + } + } + if (!err) { err = kim_options_get_addressless(options, &addressless); } @@ -177,6 +187,12 @@ forKey:@"start_time"]; } + // only free options if it was allocated by this method + if (prefs) { + kim_options_free(&options); + kim_preferences_free(&prefs); + } + return newDict; } @@ -184,15 +200,28 @@ { kim_error err = KIM_NO_ERROR; kim_options options = NULL; - kim_boolean addressless = [[aDict valueForKey:@"addressless"] boolValue]; - kim_boolean forwardable = [[aDict valueForKey:@"forwardable"] boolValue]; - kim_boolean proxiable = [[aDict valueForKey:@"proxiable"] boolValue]; - kim_boolean renewable = [[aDict valueForKey:@"renewable"] boolValue]; - kim_lifetime valid_lifetime = [[aDict valueForKey:@"valid_lifetime"] integerValue]; - kim_lifetime renewal_lifetime = [[aDict valueForKey:@"renewal_lifetime"] integerValue]; - kim_string service_name = ([[aDict valueForKey:@"service_name"] length] > 0) ? - [[aDict valueForKey:@"service_name"] UTF8String] : NULL; - kim_time start_time = [[aDict valueForKey:@"start_time"] integerValue]; + kim_boolean addressless; + kim_boolean forwardable; + kim_boolean proxiable; + kim_boolean renewable; + kim_lifetime valid_lifetime; + kim_lifetime renewal_lifetime; + kim_string service_name; + kim_time start_time; + + if (!aDict || [[aDict objectForKey:@"usesDefaultTicketOptions"] boolValue]) { + return KIM_OPTIONS_DEFAULT; + } + + addressless = [[aDict valueForKey:@"addressless"] boolValue]; + forwardable = [[aDict valueForKey:@"forwardable"] boolValue]; + proxiable = [[aDict valueForKey:@"proxiable"] boolValue]; + renewable = [[aDict valueForKey:@"renewable"] boolValue]; + valid_lifetime = [[aDict valueForKey:@"valid_lifetime"] integerValue]; + renewal_lifetime = [[aDict valueForKey:@"renewal_lifetime"] integerValue]; + service_name = ([[aDict valueForKey:@"service_name"] length] > 0) ? + [[aDict valueForKey:@"service_name"] UTF8String] : NULL; + start_time = [[aDict valueForKey:@"start_time"] integerValue]; if (!err) { err = kim_options_create (&options); diff --git a/src/kim/agent/mac/SelectIdentityController.h b/src/kim/agent/mac/SelectIdentityController.h index ece2de9e9..1a95ca994 100644 --- a/src/kim/agent/mac/SelectIdentityController.h +++ b/src/kim/agent/mac/SelectIdentityController.h @@ -54,7 +54,7 @@ IBOutlet NSObjectController *glueController; - IBOutlet NSWindow *identityOptionsWindow; + IBOutlet NSWindow *ticketOptionsWindow; IBOutlet NSObjectController *identityOptionsController; IBOutlet NSTextField *identityField; IBOutlet NSTextField *staticIdentityField; @@ -62,7 +62,10 @@ IBOutlet NSSlider *validLifetimeSlider; IBOutlet NSSlider *renewableLifetimeSlider; + IBOutlet NSBox *ticketOptionsBox; IBOutlet NSButton *ticketOptionsOkButton; + IBOutlet NSButton *ticketOptionsToggleButton; + CGFloat optionsBoxHeight; } @property (readwrite, retain) IPCClient *associatedClient; @@ -83,11 +86,13 @@ - (IBAction) select: (id) sender; - (IBAction) cancel: (id) sender; +- (IBAction) checkboxDidChange: (id) sender; - (IBAction) sliderDidChange: (id) sender; - (void) showOptions: (NSString *) contextInfo; - (void) didEndSheet: (NSWindow *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo; - (void) saveOptions; +- (IBAction) toggleOptionsVisibility: (id) sender; - (void) timedRefresh:(NSTimer *)timer; diff --git a/src/kim/agent/mac/SelectIdentityController.m b/src/kim/agent/mac/SelectIdentityController.m index 44fc30bc8..4bc760d9d 100644 --- a/src/kim/agent/mac/SelectIdentityController.m +++ b/src/kim/agent/mac/SelectIdentityController.m @@ -26,8 +26,6 @@ #import "IPCClient.h" #import "KerberosFormatters.h" -#define identities_key_path @"identities" - @implementation SelectIdentityController @synthesize associatedClient; @@ -43,7 +41,8 @@ - (void) dealloc { - [identityOptionsController removeObserver:self forKeyPath:identity_string_keypath]; + [identityArrayController removeObserver:self forKeyPath:@"selectedObjects"]; + [identityOptionsController removeObserver:self forKeyPath:uses_default_options_keypath]; [refreshTimer release]; [identities release]; [super dealloc]; @@ -55,14 +54,13 @@ { NSString *key = nil; NSString *message = nil; - - // We need to float over the loginwindow and SecurityAgent so use its hardcoded level. + [[self window] center]; [[self window] setLevel:NSScreenSaverWindowLevel]; longTimeFormatter.displaySeconds = NO; longTimeFormatter.displayShortFormat = NO; - + [identityTableView setDoubleAction:@selector(select:)]; identities = [[Identities alloc] init]; [identitiesController setContent:identities]; @@ -82,19 +80,30 @@ } [headerTextField setStringValue:message]; + optionsBoxHeight = [ticketOptionsBox frame].size.height + [ticketOptionsBox frame].origin.y - [ticketOptionsToggleButton frame].origin.y - [ticketOptionsToggleButton frame].size.height; + [self toggleOptionsVisibility:nil]; + [identityOptionsController addObserver:self forKeyPath:identity_string_keypath options:NSKeyValueObservingOptionNew context:NULL]; + [identityArrayController addObserver:self + forKeyPath:@"selectedObjects" + options:NSKeyValueObservingOptionNew + context:NULL]; } - (void) observeValueForKeyPath:(NSString *) keyPath ofObject: (id) object change: (NSDictionary *) change context:(void *) context { - if ([keyPath isEqualToString:identity_string_keypath]) { + if (object == identityOptionsController && [keyPath isEqualToString:identity_string_keypath]) { BOOL enabled = [KIMUtilities validateIdentity:[identityOptionsController valueForKeyPath:identity_string_keypath]]; [identityOptionsController setValue:[NSNumber numberWithBool:enabled] forKeyPath:@"content.canClickOK"]; } + // clear options on selection change + else if (object == identityArrayController && [keyPath isEqualToString:@"selectedObjects"]) { + [identityOptionsController setContent:nil]; + } } // --------------------------------------------------------------------------- @@ -185,7 +194,7 @@ selectedIdentity = [[identityArrayController selectedObjects] lastObject]; [associatedClient didSelectIdentity: selectedIdentity.identity - options: [identityOptionsController valueForKeyPath:@"content.options"] + options: [identityOptionsController content] wantsChangePassword: NO]; } @@ -221,7 +230,7 @@ - (IBAction) cancelOptions: (id) sender { identityOptionsController.content = nil; - [NSApp endSheet:identityOptionsWindow returnCode:NSUserCancelledError]; + [NSApp endSheet:ticketOptionsWindow returnCode:NSUserCancelledError]; // dump changed settings [identities reload]; @@ -234,7 +243,23 @@ // Identity *anIdentity = identityOptionsController.content; - [NSApp endSheet: identityOptionsWindow]; + [NSApp endSheet: ticketOptionsWindow]; +} + +// --------------------------------------------------------------------------- + +- (IBAction) checkboxDidChange: (id) sender +{ + if ([[identityOptionsController valueForKeyPath:uses_default_options_keypath] boolValue]) { + // merge defaults onto current options + NSMutableDictionary *currentOptions = [identityOptionsController content]; + NSDictionary *defaultOptions = [KIMUtilities dictionaryForKimOptions:NULL]; + NSLog(@"using default ticket options"); + [currentOptions addEntriesFromDictionary:defaultOptions]; + // update the sliders, since their values aren't bound + [validLifetimeSlider setDoubleValue:[[identityOptionsController valueForKeyPath:valid_lifetime_keypath] doubleValue]]; + [renewableLifetimeSlider setDoubleValue:[[identityOptionsController valueForKeyPath:renewal_lifetime_keypath] doubleValue]]; + } } // --------------------------------------------------------------------------- @@ -288,7 +313,7 @@ [self sliderDidChange:validLifetimeSlider]; [self sliderDidChange:renewableLifetimeSlider]; - [NSApp beginSheet: identityOptionsWindow + [NSApp beginSheet: ticketOptionsWindow modalForWindow: [self window] modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) @@ -359,6 +384,37 @@ // --------------------------------------------------------------------------- +- (IBAction) toggleOptionsVisibility: (id) sender +{ + NSRect newFrame = [NSWindow contentRectForFrameRect:[ticketOptionsWindow frame] styleMask:[ticketOptionsWindow styleMask]]; + CGFloat newHeight; + + if ([ticketOptionsBox isHidden]) { + newHeight = newFrame.size.height + optionsBoxHeight; + newFrame.origin.y += newFrame.size.height; + newFrame.origin.y -= newHeight; + newFrame.size.height = newHeight; + newFrame = [NSWindow frameRectForContentRect:newFrame styleMask:[ticketOptionsWindow styleMask]]; + + [ticketOptionsWindow setFrame:newFrame display:YES animate:YES]; + [ticketOptionsBox setHidden:NO]; + [sender setTitle:NSLocalizedStringFromTable(@"SelectIdentityHideOptions", @"SelectIdentity", NULL)]; + } + else { + newHeight = newFrame.size.height - optionsBoxHeight; + newFrame.origin.y += newFrame.size.height; + newFrame.origin.y -= newHeight; + newFrame.size.height = newHeight; + newFrame = [NSWindow frameRectForContentRect:newFrame styleMask:[ticketOptionsWindow styleMask]]; + + [ticketOptionsBox setHidden:YES]; + [ticketOptionsWindow setFrame:newFrame display:YES animate:YES]; + [sender setTitle:NSLocalizedStringFromTable(@"SelectIdentityShowOptions", @"SelectIdentity", NULL)]; + } +} + +// --------------------------------------------------------------------------- + - (void) timedRefresh:(NSTimer *)timer { // refetch data to update expiration times diff --git a/src/kim/agent/mac/resources/English.lproj/Authentication.xib b/src/kim/agent/mac/resources/English.lproj/Authentication.xib index aac2d7fa8..0fb1048ab 100644 --- a/src/kim/agent/mac/resources/English.lproj/Authentication.xib +++ b/src/kim/agent/mac/resources/English.lproj/Authentication.xib @@ -8,10 +8,10 @@ 352.00 YES - - + + YES @@ -75,6 +75,7 @@ maxRenewableLifetime renewa renewal_lifetime + usesDefaultTicketOptions YES @@ -950,7 +951,7 @@ 1 2 - {{21, 50}, {430, 283}} + {{21, 28}, {430, 305}} 1886912512 Kerberos Ticket Options NSWindow @@ -1172,8 +1173,30 @@ 25 + + + 268 + {{18, 269}, {184, 18}} + + YES + + -2080244224 + 0 + Use default ticket options + + + 1211912703 + 130 + + + + + 200 + 25 + + - {430, 283} + {430, 305} {{0, 0}, {1440, 878}} @@ -1822,7 +1845,7 @@ enabled: selection.renewable - + enabled: selection.renewable @@ -2106,6 +2129,146 @@ 300540 + + + value: selection.usesDefaultTicketOptions + + + + + + value: selection.usesDefaultTicketOptions + value + selection.usesDefaultTicketOptions + 2 + + + 300545 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300547 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300549 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300551 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300553 + + + + enabled2: selection.usesDefaultTicketOptions + + + + + + enabled2: selection.usesDefaultTicketOptions + enabled2 + selection.usesDefaultTicketOptions + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 300555 + + + + checkboxDidChange: + + + + 300556 + @@ -2710,16 +2873,17 @@ YES - - - - - - - - + + + + + + + + + @@ -2918,6 +3082,20 @@ + + 300543 + + + YES + + + + + + 300544 + + + @@ -3060,6 +3238,8 @@ 300533.IBPluginDependency 300534.IBPluginDependency 300536.IBPluginDependency + 300543.IBPluginDependency + 300544.IBPluginDependency YES @@ -3069,7 +3249,7 @@ com.apple.InterfaceBuilder.CocoaPlugin {{628, 646}, {500, 210}} - + {{932, 664}, {484, 199}} @@ -3159,9 +3339,9 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{647, 412}, {430, 283}} + {{647, 390}, {430, 305}} com.apple.InterfaceBuilder.CocoaPlugin - {{647, 412}, {430, 283}} + {{647, 390}, {430, 305}} @@ -3199,6 +3379,8 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -3221,7 +3403,7 @@ - 300540 + 300556 @@ -3238,6 +3420,7 @@ cancelTicketOptions: changePassword: changePasswordGearAction: + checkboxDidChange: enterIdentity: saveTicketOptions: showTicketOptions: @@ -3256,6 +3439,7 @@ id id id + id diff --git a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.strings b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.strings index 6eb2109b2..db20365e9 100644 Binary files a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.strings and b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.strings differ diff --git a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib index c588d9157..f1822af44 100644 --- a/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib +++ b/src/kim/agent/mac/resources/English.lproj/SelectIdentity.xib @@ -8,7 +8,7 @@ 352.00 YES - + YES @@ -40,7 +40,7 @@ {800, 800} {400, 273} - + 256 YES @@ -481,7 +481,6 @@ {500, 273} - {{0, 0}, {1440, 878}} {400, 295} @@ -514,21 +513,21 @@ 7 2 - {{196, 162}, {427, 348}} + {{196, 142}, {427, 368}} 603979776 Window NSWindow {3.40282e+38, 3.40282e+38} - + 258 YES 266 - {{78, 306}, {329, 22}} + {{78, 326}, {329, 22}} YES @@ -556,13 +555,13 @@ 268 - {{17, 308}, {60, 17}} + {{17, 328}, {56, 17}} YES 68288064 - 71304192 - Identity: + 4195328 + Identity: @@ -582,7 +581,7 @@ 266 - {{24, 179}, {337, 25}} + {{22, 181}, {347, 25}} YES @@ -606,7 +605,7 @@ 268 - {{13, 211}, {185, 17}} + {{11, 213}, {185, 17}} YES @@ -622,7 +621,7 @@ 266 - {{23, 157}, {339, 14}} + {{21, 159}, {349, 14}} YES @@ -638,7 +637,7 @@ 268 - {{13, 132}, {133, 17}} + {{11, 134}, {133, 17}} YES @@ -654,7 +653,7 @@ 266 - {{42, 34}, {301, 25}} + {{40, 36}, {311, 25}} YES @@ -682,7 +681,7 @@ 268 - {{24, 86}, {303, 18}} + {{22, 88}, {303, 18}} YES @@ -705,7 +704,7 @@ 268 - {{24, 108}, {351, 18}} + {{22, 110}, {351, 18}} YES @@ -726,7 +725,7 @@ 268 - {{24, 64}, {248, 18}} + {{22, 66}, {248, 18}} YES @@ -747,7 +746,7 @@ 266 - {{41, 12}, {303, 14}} + {{39, 14}, {313, 14}} YES @@ -761,11 +760,11 @@ - {{3, 3}, {387, 238}} + {{1, 1}, {391, 242}} - {{17, 56}, {393, 244}} + {{17, 48}, {393, 244}} {0, 0} @@ -780,7 +779,7 @@ - 2 + 1 1 0 NO @@ -825,44 +824,70 @@ 25 - + - 289 - {{129, 12}, {120, 32}} + -2147483382 + {{73, 328}, {337, 17}} YES - - 67239424 - 134217728 - Use Defaults + + 68288064 + 272630784 + Label - - -2038284033 - 129 + + + + + + + + 268 + {{18, 300}, {184, 18}} + + YES + + -2080244224 + 0 + Use default ticket options + + + 1211912703 + 130 + + NSImage + NSSwitch + + 200 25 - + - -2147483380 - {{75, 308}, {335, 17}} + 292 + {{14, 12}, {127, 32}} YES - - 68288064 - 272630784 - Label + + 67239424 + 134217728 + Show Options - - - + + -2038284033 + 129 + + Gw + 200 + 25 - {427, 348} + {427, 368} + {{0, 0}, {1280, 778}} {3.40282e+38, 3.40282e+38} @@ -889,6 +914,7 @@ renewal_lifetime identity_string canClickOK + usesDefaultTicketOptions YES @@ -1288,14 +1314,6 @@ 300450 - - - identityOptionsWindow - - - - 300451 - editOptions: @@ -1312,14 +1330,6 @@ 300453 - - - resetOptions: - - - - 300454 - doneOptions: @@ -1579,7 +1589,7 @@ enabled: selection.renewable - + enabled: selection.renewable @@ -1718,6 +1728,178 @@ 300511 + + + ticketOptionsBox + + + + 300520 + + + + toggleOptionsVisibility: + + + + 300521 + + + + ticketOptionsWindow + + + + 300522 + + + + ticketOptionsToggleButton + + + + 300523 + + + + value: selection.usesDefaultTicketOptions + + + + + + value: selection.usesDefaultTicketOptions + value + selection.usesDefaultTicketOptions + 2 + + + 300525 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300527 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300529 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300531 + + + + enabled: selection.usesDefaultTicketOptions + + + + + + enabled: selection.usesDefaultTicketOptions + enabled + selection.usesDefaultTicketOptions + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 300533 + + + + enabled2: selection.usesDefaultTicketOptions + + + + + + enabled2: selection.usesDefaultTicketOptions + enabled2 + selection.usesDefaultTicketOptions + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 300535 + + + + checkboxDidChange: + + + + 300536 + @@ -1964,11 +2146,12 @@ YES - - + + + @@ -1977,15 +2160,15 @@ YES - + - - + - + + @@ -2017,132 +2200,6 @@ - - 300307 - - - YES - - - - - - 300308 - - - YES - - - - - - 300309 - - - YES - - - - - - 300310 - - - YES - - - - - - 300311 - - - YES - - - - - - 300312 - - - YES - - - - - - 300313 - - - YES - - - - - - 300314 - - - YES - - - - - - 300315 - - - YES - - - - - - 300316 - - - - - 300317 - - - - - 300318 - - - - - 300319 - - - - - 300320 - - - - - 300321 - - - - - 300322 - - - - - 300323 - - - - - 300324 - - - 300329 @@ -2177,20 +2234,6 @@ - - 300358 - - - YES - - - - - - 300359 - - - 300370 @@ -2279,6 +2322,160 @@ Long Time Formatter + + 300308 + + + YES + + + + + + 300323 + + + + + 300309 + + + YES + + + + + + 300322 + + + + + 300310 + + + YES + + + + + + 300321 + + + + + 300311 + + + YES + + + + + + 300320 + + + + + 300307 + + + YES + + + + + + 300324 + + + + + 300315 + + + YES + + + + + + 300316 + + + + + 300312 + + + YES + + + + + + 300319 + + + + + 300314 + + + YES + + + + + + 300317 + + + + + 300313 + + + YES + + + + + + 300318 + + + + + 300514 + + + YES + + + + + + 300515 + + + + + 300518 + + + YES + + + + + + 300519 + + + @@ -2348,8 +2545,6 @@ 300331.IBPluginDependency 300334.IBPluginDependency 300335.IBPluginDependency - 300358.IBPluginDependency - 300359.IBPluginDependency 300370.IBPluginDependency 300402.IBPluginDependency 300403.IBPluginDependency @@ -2364,6 +2559,10 @@ 300462.IBPluginDependency 300485.IBPluginDependency 300498.IBPluginDependency + 300514.IBPluginDependency + 300515.IBPluginDependency + 300518.IBPluginDependency + 300519.IBPluginDependency 5.IBEditorWindowLastContentRect 5.IBPluginDependency 5.IBWindowTemplateEditedContentRect @@ -2408,9 +2607,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{553, 335}, {427, 348}} + {{704, 346}, {427, 368}} com.apple.InterfaceBuilder.CocoaPlugin - {{553, 335}, {427, 348}} + {{704, 346}, {427, 368}} {10000, 354} @@ -2449,9 +2648,11 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{610, 271}, {203, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{610, 271}, {203, 103}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2496,7 +2697,7 @@ - 300511 + 300536 @@ -2541,6 +2742,7 @@ cancel: cancelOptions: changePassword: + checkboxDidChange: doneOptions: editOptions: newIdentity: @@ -2548,6 +2750,7 @@ resetOptions: select: sliderDidChange: + toggleOptionsVisibility: YES @@ -2562,6 +2765,8 @@ id id id + id + id @@ -2578,7 +2783,6 @@ identityArrayController identityField identityOptionsController - identityOptionsWindow identityTableScrollView identityTableView kerberosIconImageView @@ -2587,7 +2791,10 @@ selectIdentityButton shortTimeFormatter staticIdentityField + ticketOptionsBox ticketOptionsOkButton + ticketOptionsToggleButton + ticketOptionsWindow validLifetimeSlider @@ -2602,7 +2809,6 @@ NSArrayController NSTextField NSObjectController - NSWindow NSScrollView NSTableView BadgedImageView @@ -2611,7 +2817,10 @@ NSButton KerberosTimeFormatter NSTextField + NSBox + NSButton NSButton + NSWindow NSSlider