From e4aae34ab7114db950209d2f1e1710bd37bf883f Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 30 May 2007 20:20:02 +0000 Subject: [PATCH] Monotone-Parent: 6b29211b83532bdab288ba2a6d428067b1e81267 Monotone-Revision: f52396704f73dfc96a00df9959e4d9cb043d72fe Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-05-30T20:20:02 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 ++++ SoObjects/SOGo/SOGoUser.h | 4 ++++ SoObjects/SOGo/SOGoUser.m | 31 ++++++++++++++++++++++++++++++- 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d16133613..c57aaebec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-05-30 Wolfgang Sourdeau + * SoObjects/SOGo/SOGoUser.m ([SOGoUser -fullEmail]): new proxy method. + ([SOGoUser -language]): new method that returns the user's + preferred language, or the system's if none has been set yet. + * SoObjects/SOGo/SOGoObject.m ([SOGoObject -davURL]): new method that returns the full dav url to self. ([SOGoObject -soURL]): same as above but for the so url (Web UI). diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index 6b52688a1..c41acfc91 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -45,6 +45,7 @@ @interface SOGoUser : SoUser { NSString *cn; + NSString *language; NSArray *allEmails; NSUserDefaults *userDefaults; NSUserDefaults *userSettings; @@ -56,6 +57,8 @@ /* properties */ +- (NSString *) fullEmail; + - (NSString *) primaryEmail; - (NSString *) systemEmail; - (NSArray *) allEmails; @@ -80,6 +83,7 @@ - (NSUserDefaults *) userDefaults; - (NSUserDefaults *) userSettings; +- (NSString *) language; - (NSTimeZone *) timeZone; - (NSTimeZone *) serverTimeZone; diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index f84d30655..e345602a7 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -35,6 +35,7 @@ static NSTimeZone *serverTimeZone = nil; static NSString *fallbackIMAP4Server = nil; +static NSString *defaultLanguage = nil; static NSURL *AgenorProfileURL = nil; @interface NSObject (SOGoRoles) @@ -66,7 +67,14 @@ static NSURL *AgenorProfileURL = nil; AgenorProfileURL = [[NSURL alloc] initWithString: profileURL]; } if (!fallbackIMAP4Server) - ASSIGN (fallbackIMAP4Server, [ud stringForKey: @"SOGoFallbackIMAP4Server"]); + ASSIGN (fallbackIMAP4Server, + [ud stringForKey: @"SOGoFallbackIMAP4Server"]); + if (!defaultLanguage) + { + ASSIGN (defaultLanguage, [ud stringForKey: @"SOGoDefaultLanguage"]); + if (!defaultLanguage) + ASSIGN (defaultLanguage, @"English"); + } } + (SOGoUser *) userWithLogin: (NSString *) newLogin @@ -87,6 +95,7 @@ static NSURL *AgenorProfileURL = nil; userDefaults = nil; userSettings = nil; allEmails = nil; + language = nil; } return self; @@ -116,6 +125,8 @@ static NSURL *AgenorProfileURL = nil; { [userDefaults release]; [userSettings release]; + [allEmails release]; + [language release]; [super dealloc]; } @@ -144,6 +155,11 @@ static NSURL *AgenorProfileURL = nil; /* properties */ +- (NSString *) fullEmail +{ + return [[LDAPUserManager sharedUserManager] getFullEmailForUID: login]; +} + - (NSString *) primaryEmail { if (!allEmails) @@ -249,6 +265,19 @@ static NSURL *AgenorProfileURL = nil; return userSettings; } +- (NSString *) language +{ + if (!language) + { + language = [[self userDefaults] stringForKey: @"Language"]; + if (!language) + language = defaultLanguage; + [language retain]; + } + + return language; +} + - (NSTimeZone *) timeZone { NSString *timeZoneName;