2 // ESSIPEAccountViewController.m
5 // Created by Matt Meissner on 10/30/09.
6 // Modified by Michael Lamb on 2/27/13
7 // Copyright 2013 Michael Lamb/Harris Kauffman. All rights reserved.
11 #import "ESSIPEAccountViewController.h"
13 #import <AdiumLibpurple/CBPurpleAccount.h>
16 #include "ESPurpleSIPEAccount.h"
18 @implementation ESSIPEAccountViewController
20 - (NSString *)nibName{
21 return @"ESSIPEAccountView";
24 #pragma mark Configuration methods
25 - (void)configureForAccount:(AIAccount *)inAccount
27 [super configureForAccount:inAccount];
29 NSString *server = [account preferenceForKey:KEY_SIPE_CONNECT_HOST group:GROUP_ACCOUNT_STATUS];
30 [textField_server setStringValue:(server ? server : @"")];
32 NSString *windowsLogin = [account preferenceForKey:KEY_SIPE_WINDOWS_LOGIN group:GROUP_ACCOUNT_STATUS];
33 [textField_windowsLogin setStringValue:(windowsLogin ? windowsLogin : @"")];
35 [checkBox_singleSignOn setState:[[account preferenceForKey:KEY_SIPE_SINGLE_SIGN_ON group:GROUP_ACCOUNT_STATUS] boolValue]];
37 NSString *userAgent = [account preferenceForKey:KEY_SIPE_USER_AGENT group:GROUP_ACCOUNT_STATUS];
38 [textField_userAgent setStringValue:(userAgent ? userAgent : @"")];
40 NSString *emailURL = [account preferenceForKey:KEY_SIPE_EMAIL_URL group:GROUP_ACCOUNT_STATUS];
41 [textField_emailURL setStringValue:(emailURL ? emailURL : @"")];
43 NSString *email = [account preferenceForKey:KEY_SIPE_EMAIL group:GROUP_ACCOUNT_STATUS];
44 [textField_email setStringValue:(email ? email : @"")];
46 NSString *emailLogin = [account preferenceForKey:KEY_SIPE_EMAIL_LOGIN group:GROUP_ACCOUNT_STATUS];
47 [textField_emailLogin setStringValue:(emailLogin ? emailLogin : @"")];
49 NSString *emailPassword = [account preferenceForKey:KEY_SIPE_EMAIL_PASSWORD group:GROUP_ACCOUNT_STATUS];
50 [textField_emailPassword setStringValue:(emailPassword ? emailPassword : @"")];
52 NSString *groupchatUser = [account preferenceForKey:KEY_SIPE_GROUP_CHAT_PROXY group:GROUP_ACCOUNT_STATUS];
53 [textField_groupchatUser setStringValue:(groupchatUser ? groupchatUser : @"")];
55 NSString *connType = [account preferenceForKey:KEY_SIPE_CONNECTION_TYPE group:GROUP_ACCOUNT_STATUS];
56 NSDictionary *connTypeDict = [NSDictionary dictionaryWithObjectsAndKeys:
61 [popup_connectionType selectItemWithTitle:[connTypeDict objectForKey:(connType ? connType : @"auto")]];
63 NSString *authType = [account preferenceForKey:KEY_SIPE_AUTH_SCHEME group:GROUP_ACCOUNT_STATUS];
64 NSDictionary *authTypeDict = [NSDictionary dictionaryWithObjectsAndKeys:
67 @"TLS-DSK",@"tls-dsk",
69 [popup_authenticationScheme selectItemWithTitle:[authTypeDict objectForKey:(authType ? authType : @"ntlm")]];
72 - (void)saveConfiguration
74 [super saveConfiguration];
76 [account setPreference:[textField_windowsLogin stringValue]
77 forKey:KEY_SIPE_WINDOWS_LOGIN group:GROUP_ACCOUNT_STATUS];
79 [account setPreference:[textField_server stringValue]
80 forKey:KEY_SIPE_CONNECT_HOST group:GROUP_ACCOUNT_STATUS];
82 // TODO: Figure out how to only save the password if the user has "Save password" checked
83 [account setPreference:[textField_password stringValue]
84 forKey:KEY_SIPE_PASSWORD group:GROUP_ACCOUNT_STATUS];
86 [account setPreference:[NSNumber numberWithBool:[checkBox_singleSignOn state]]
87 forKey:KEY_SIPE_SINGLE_SIGN_ON group:GROUP_ACCOUNT_STATUS];
89 [account setPreference:
90 ([[textField_userAgent stringValue] length] ? [textField_userAgent stringValue] : nil)
91 forKey:KEY_SIPE_USER_AGENT group:GROUP_ACCOUNT_STATUS];
93 [account setPreference:
94 ([[textField_emailURL stringValue] length] ? [textField_emailURL stringValue] : nil)
95 forKey:KEY_SIPE_EMAIL_URL group:GROUP_ACCOUNT_STATUS];
97 [account setPreference:
98 ([[textField_email stringValue] length] ? [textField_email stringValue] : nil)
99 forKey:KEY_SIPE_EMAIL group:GROUP_ACCOUNT_STATUS];
101 [account setPreference:
102 ([[textField_emailLogin stringValue] length] ? [textField_emailLogin stringValue] : nil)
103 forKey:KEY_SIPE_EMAIL_LOGIN group:GROUP_ACCOUNT_STATUS];
105 [account setPreference:
106 ([[textField_emailPassword stringValue] length] ? [textField_emailPassword stringValue] : nil)
107 forKey:KEY_SIPE_EMAIL_PASSWORD group:GROUP_ACCOUNT_STATUS];
109 [account setPreference:
110 ([[textField_groupchatUser stringValue] length] ? [textField_groupchatUser stringValue] : nil)
111 forKey:KEY_SIPE_GROUP_CHAT_PROXY group:GROUP_ACCOUNT_STATUS];
113 NSMutableArray *myArray = [[NSMutableArray alloc] initWithObjects:@"auto", @"tls", @"tcp", nil];
114 [account setPreference: [myArray objectAtIndex:[popup_connectionType selectedTag]]
115 forKey:KEY_SIPE_CONNECTION_TYPE group:GROUP_ACCOUNT_STATUS];
118 myArray = [[NSMutableArray alloc] initWithObjects:@"ntlm", @"krb5", @"tls-dsk", nil];
119 [account setPreference: [myArray objectAtIndex:[popup_authenticationScheme selectedTag]]
120 forKey:KEY_SIPE_AUTH_SCHEME group:GROUP_ACCOUNT_STATUS];