i18n: update bug tracker URL in script
[siplcs.git] / src / adium / ESSIPEAccountViewController.m
blobb9ce0823d3ef935e6d766adee6e80e07be81cac0
1 //
2 //  ESSIPEAccountViewController.m
3 //  SIPEAdiumPlugin
4 //
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.
8 //
11 #import "ESSIPEAccountViewController.h"
13 #import <AdiumLibpurple/CBPurpleAccount.h>
15 #include "prpl.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];
28     
29     NSString *server = [account preferenceForKey:KEY_SIPE_CONNECT_HOST group:GROUP_ACCOUNT_STATUS];
30     [textField_server setStringValue:(server ? server : @"")];
31     
32     NSString *windowsLogin = [account preferenceForKey:KEY_SIPE_WINDOWS_LOGIN group:GROUP_ACCOUNT_STATUS];
33         [textField_windowsLogin setStringValue:(windowsLogin ? windowsLogin : @"")];
34     
35         [checkBox_singleSignOn setState:[[account preferenceForKey:KEY_SIPE_SINGLE_SIGN_ON group:GROUP_ACCOUNT_STATUS] boolValue]];
36     
37         NSString *userAgent = [account preferenceForKey:KEY_SIPE_USER_AGENT group:GROUP_ACCOUNT_STATUS];
38         [textField_userAgent setStringValue:(userAgent ? userAgent : @"")];
39     
40         NSString *emailURL = [account preferenceForKey:KEY_SIPE_EMAIL_URL group:GROUP_ACCOUNT_STATUS];
41         [textField_emailURL setStringValue:(emailURL ? emailURL : @"")];
42     
43     NSString *email = [account preferenceForKey:KEY_SIPE_EMAIL group:GROUP_ACCOUNT_STATUS];
44         [textField_email setStringValue:(email ? email : @"")];
45     
46     NSString *emailLogin = [account preferenceForKey:KEY_SIPE_EMAIL_LOGIN group:GROUP_ACCOUNT_STATUS];
47         [textField_emailLogin setStringValue:(emailLogin ? emailLogin : @"")];
48     
49     NSString *emailPassword = [account preferenceForKey:KEY_SIPE_EMAIL_PASSWORD group:GROUP_ACCOUNT_STATUS];
50         [textField_emailPassword setStringValue:(emailPassword ? emailPassword : @"")];
51     
52     NSString *groupchatUser = [account preferenceForKey:KEY_SIPE_GROUP_CHAT_PROXY group:GROUP_ACCOUNT_STATUS];
53         [textField_groupchatUser setStringValue:(groupchatUser ? groupchatUser : @"")];
54     
55     NSString *connType = [account preferenceForKey:KEY_SIPE_CONNECTION_TYPE group:GROUP_ACCOUNT_STATUS];
56     NSDictionary *connTypeDict = [NSDictionary dictionaryWithObjectsAndKeys:
57                                   @"Auto",@"auto",
58                                   @"SSL/TLS",@"tls",
59                                   @"TCP",@"tcp",
60                                   nil];
61     [popup_connectionType selectItemWithTitle:[connTypeDict objectForKey:(connType ? connType : @"auto")]];
62     
63     NSString *authType = [account preferenceForKey:KEY_SIPE_AUTH_SCHEME group:GROUP_ACCOUNT_STATUS];
64     NSDictionary *authTypeDict = [NSDictionary dictionaryWithObjectsAndKeys:
65                                   @"NTLM",@"ntlm",
66                                   @"Kerberos",@"krb5",
67                                   @"TLS-DSK",@"tls-dsk",
68                                   nil];
69     [popup_authenticationScheme selectItemWithTitle:[authTypeDict objectForKey:(authType ? authType : @"ntlm")]];
72 - (void)saveConfiguration
74     [super saveConfiguration];
75     
76     [account setPreference:[textField_windowsLogin stringValue]
77                                         forKey:KEY_SIPE_WINDOWS_LOGIN group:GROUP_ACCOUNT_STATUS];
78     
79     [account setPreference:[textField_server stringValue]
80                     forKey:KEY_SIPE_CONNECT_HOST group:GROUP_ACCOUNT_STATUS];
81     
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];
85     
86         [account setPreference:[NSNumber numberWithBool:[checkBox_singleSignOn state]]
87                     forKey:KEY_SIPE_SINGLE_SIGN_ON group:GROUP_ACCOUNT_STATUS];
88     
89         [account setPreference:
90      ([[textField_userAgent stringValue] length] ? [textField_userAgent stringValue] : nil)
91                     forKey:KEY_SIPE_USER_AGENT group:GROUP_ACCOUNT_STATUS];
92     
93     [account setPreference:
94      ([[textField_emailURL stringValue] length] ? [textField_emailURL stringValue] : nil)
95                     forKey:KEY_SIPE_EMAIL_URL group:GROUP_ACCOUNT_STATUS];
96     
97     [account setPreference:
98      ([[textField_email stringValue] length] ? [textField_email stringValue] : nil)
99                     forKey:KEY_SIPE_EMAIL group:GROUP_ACCOUNT_STATUS];
100     
101         [account setPreference:
102      ([[textField_emailLogin stringValue] length] ? [textField_emailLogin stringValue] : nil)
103                     forKey:KEY_SIPE_EMAIL_LOGIN group:GROUP_ACCOUNT_STATUS];
104     
105     [account setPreference:
106      ([[textField_emailPassword stringValue] length] ? [textField_emailPassword stringValue] : nil)
107                     forKey:KEY_SIPE_EMAIL_PASSWORD group:GROUP_ACCOUNT_STATUS];
108     
109     [account setPreference:
110      ([[textField_groupchatUser stringValue] length] ? [textField_groupchatUser stringValue] : nil)
111                     forKey:KEY_SIPE_GROUP_CHAT_PROXY group:GROUP_ACCOUNT_STATUS];
112     
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];
116     [myArray release];
117     
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];
121     [myArray release];
124 @end