diff --git a/ChangeLog b/ChangeLog index 98ee8c52d..155a427a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-03-27 Wolfgang Sourdeau + * SoObjects/SOGo/SOGoUser.m ([SOGoUser -userSettings]): new method + (see below). + * SoObjects/SOGo/AgenorUserManager.m ([AgenorUserManager -getUserDefaultsForUID:uid]): rewrote method to use the "defaults" field of the sogo_user_profile table, where the user-customizable diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index 164af564a..62dc2ed9c 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -42,6 +42,7 @@ NSString *cn; NSString *email; NSUserDefaults *userDefaults; + NSUserDefaults *userSettings; } /* properties */ @@ -60,7 +61,8 @@ /* defaults */ -- (NSUserDefaults *)userDefaults; +- (NSUserDefaults *) userDefaults; +- (NSUserDefaults *) userSettings; /* folders */ diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index d3bb2eaac..6d863d530 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -37,8 +37,20 @@ @implementation SOGoUser +- (id) init +{ + if ((self = [super init])) + { + userDefaults = nil; + userSettings = nil; + } + + return self; +} + - (void)dealloc { [self->userDefaults release]; + [self->userSettings release]; [self->cn release]; [self->email release]; [super dealloc]; @@ -90,12 +102,26 @@ /* defaults */ -- (NSUserDefaults *)userDefaults { - if (self->userDefaults == nil) { - self->userDefaults = - [[[self userManager] getUserDefaultsForUID:[self login]] retain]; - } - return self->userDefaults; +- (NSUserDefaults *) userDefaults +{ + if (!userDefaults) + { + userDefaults = [[self userManager] getUserDefaultsForUID: [self login]]; + [userDefaults retain]; + } + + return userDefaults; +} + +- (NSUserDefaults *) userSettings +{ + if (!userSettings) + { + userSettings = [[self userManager] getUserSettingsForUID: [self login]]; + [userSettings retain]; + } + + return userSettings; } /* folders */