Fix for feature #3079

Monotone-Parent: 1de4349e78aa0e2e7b5b5f1107576ae89d90f64e
Monotone-Revision: 56b6e4ca9c570a4e36d00e32127d539e82da7293

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2008-11-05T17:26:02
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Francis Lachapelle
2008-11-05 17:26:02 +00:00
parent d54abbdcfe
commit 5100d6611d
14 changed files with 221 additions and 5 deletions
+48 -1
View File
@@ -38,6 +38,8 @@
#import "SOGoRootPage.h"
static NSArray *supportedLanguages = nil;
@interface SOGoRootPage (crashAdditions)
- (void) segfault;
@@ -46,6 +48,12 @@
@implementation SOGoRootPage
+ (void) initialize
{
if (!supportedLanguages)
supportedLanguages = [NSArray arrayWithObjects: @"English", @"French", @"German", @"Italian", @"Spanish", nil];
}
/* accessors */
- (NSString *) connectURL
@@ -60,14 +68,16 @@
WORequest *request;
WOCookie *authCookie;
SOGoWebAuthenticator *auth;
SOGoUser *user;
NSString *cookieValue, *cookieString;
NSString *userName, *password;
NSString *userName, *password, *language;
auth = [[WOApplication application]
authenticatorInContext: context];
request = [context request];
userName = [request formValueForKey: @"userName"];
password = [request formValueForKey: @"password"];
language = [request formValueForKey: @"language"];
if ([auth checkLogin: userName password: password])
{
[self logWithFormat: @"successful login for user '%@'", userName];
@@ -80,6 +90,13 @@
value: cookieValue];
[authCookie setPath: @"/"];
[response addCookie: authCookie];
if (language)
{
user = [SOGoUser userWithLogin: userName roles: nil];
[[user userDefaults] setObject: language forKey: @"Language"];
[[user userDefaults] synchronize];
}
}
else
{
@@ -151,4 +168,34 @@
return ([[self loginSuffix] length]);
}
- (void) setItem: (id) _item
{
ASSIGN (item, _item);
}
- (id) item
{
return item;
}
- (NSArray *) languages
{
return supportedLanguages;
}
- (NSString *) language
{
return [SOGoUser language];
}
- (NSString *) languageText
{
NSString *text;
text = [self labelForKey: item];
return text;
}
@end /* SOGoRootPage */