diff --git a/ChangeLog b/ChangeLog index 5373b6cfe..f08a575f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-06-19 Wolfgang Sourdeau + * SoObjects/SOGo/SOGoUser.m ([SOGoUser + -setCurrentPassword:newPassword]): new stub method. + ([SOGoUser -dateFormatterInContext:context]): new method that + returns an instance of SOGoDateFormatter configured based on the + user defaults. + * UI/Common/UIxPageFrame.m ([UIxPageFrame -relativePreferencesPath]): new method. diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index c41acfc91..7d6816424 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -22,7 +22,7 @@ #ifndef __SOGoUser_H__ #define __SOGoUser_H__ -#include +#import /* SOGoUser @@ -41,19 +41,29 @@ @class NSUserDefaults; @class NSTimeZone; @class WOContext; +@class SOGoDateFormatter; + +extern NSString *SOGoWeekStartHideWeekNumbers; +extern NSString *SOGoWeekStartJanuary1; +extern NSString *SOGoWeekStartFirst4DayWeek; +extern NSString *SOGoWeekStartFirstFullWeek; @interface SOGoUser : SoUser { + NSString *currentPassword; NSString *cn; NSString *language; NSArray *allEmails; NSUserDefaults *userDefaults; NSUserDefaults *userSettings; NSTimeZone *userTimeZone; + SOGoDateFormatter *dateFormatter; } + (SOGoUser *) userWithLogin: (NSString *) login roles: (NSArray *) roles; +- (void) setCurrentPassword: (NSString *) newPassword; +- (NSString *) currentPassword; /* properties */ @@ -68,6 +78,8 @@ - (NSString *) cn; - (NSURL *) freeBusyURL; +- (SOGoDateFormatter *) dateFormatterInContext: (WOContext *) context; + /* shares and identities */ - (NSString *) primaryIMAP4AccountString; diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index d60b5dc2c..a79694b9e 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -29,7 +29,8 @@ #import "AgenorUserDefaults.h" #import "LDAPUserManager.h" -#import "SOGoContentObject.h" +#import "SOGoDateFormatter.h" +#import "SOGoObject.h" #import "SOGoPermissions.h" #import "NSArray+Utilities.h" @@ -40,6 +41,11 @@ static NSString *fallbackIMAP4Server = nil; static NSString *defaultLanguage = nil; static NSURL *AgenorProfileURL = nil; +NSString *SOGoWeekStartHideWeekNumbers = @"HideWeekNumbers"; +NSString *SOGoWeekStartJanuary1 = @"January1"; +NSString *SOGoWeekStartFirst4DayWeek = @"First4DayWeek"; +NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; + @interface NSObject (SOGoRoles) - (NSArray *) rolesOfUser: (NSString *) uid; @@ -98,6 +104,8 @@ static NSURL *AgenorProfileURL = nil; userSettings = nil; allEmails = nil; language = nil; + currentPassword = nil; + dateFormatter = nil; } return self; @@ -125,13 +133,25 @@ static NSURL *AgenorProfileURL = nil; - (void) dealloc { + [currentPassword release]; [userDefaults release]; [userSettings release]; [allEmails release]; [language release]; + [dateFormatter release]; [super dealloc]; } +- (void) setCurrentPassword: (NSString *) newPassword +{ + ASSIGN (currentPassword, newPassword); +} + +- (NSString *) currentPassword +{ + return currentPassword; +} + - (id) _fetchFieldForUser: (NSString *) field { NSDictionary *contactInfos; @@ -232,6 +252,30 @@ static NSURL *AgenorProfileURL = nil; return nil; } +- (SOGoDateFormatter *) dateFormatterInContext: (WOContext *) context +{ + NSString *format; + NSUserDefaults *ud; + + if (!dateFormatter) + { + dateFormatter = [SOGoDateFormatter new]; + [dateFormatter setLocale: [context valueForKey: @"locale"]]; + ud = [self userDefaults]; + format = [ud stringForKey: @"ShortDateFormat"]; + if (format) + [dateFormatter setShortDateFormat: format]; + format = [ud stringForKey: @"LongDateFormat"]; + if (format) + [dateFormatter setLongDateFormat: format]; + format = [ud stringForKey: @"TimeFormat"]; + if (format) + [dateFormatter setTimeFormat: format]; + } + + return dateFormatter; +} + /* defaults */ - (NSUserDefaults *) userDefaults @@ -309,8 +353,10 @@ static NSURL *AgenorProfileURL = nil; if ([folder isKindOfClass:[NSException class]]) return folder; - [(WOContext *)_ctx setObject:folder ? folder : [NSNull null] - forKey: @"ActiveUserHomeFolder"]; + [(WOContext *)_ctx setObject: ((folder) + ? folder + : [NSNull null]) + forKey: @"ActiveUserHomeFolder"]; return folder; }