From a465c82c57b4583148119f8d41969d85831745e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 13 Jan 2009 15:26:35 +0000 Subject: [PATCH 1/5] Monotone-Parent: b3bd45e420720798687eac0aee6758ecefab1487 Monotone-Revision: 1a1f30934eb19691177704c8c1a92697a45c390e Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-01-13T15:26:35 Monotone-Branch: ca.inverse.sogo --- SoObjects/SOGo/SOGoUser.m | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index bdb238e7d..d6409aec6 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -187,7 +187,7 @@ _timeValue (NSString *key) if (!defaultMessageCheck) ASSIGN (defaultMessageCheck, @"manually"); } - + if (!superUsernames) ASSIGN (superUsernames, [ud arrayForKey: @"SOGoSuperUsernames"]); @@ -349,7 +349,7 @@ _timeValue (NSString *key) if (!allEmails) [self _fetchAllEmails]; - return allEmails; + return allEmails; } - (NSString *) systemEmail @@ -364,7 +364,7 @@ _timeValue (NSString *key) { if (!allEmails) [self _fetchAllEmails]; - + return [allEmails containsCaseInsensitiveString: email]; } @@ -467,11 +467,11 @@ _timeValue (NSString *key) - (NSUserDefaults *) userDefaults { id o; - + o = [[SOGoCache cachedUserDefaults] objectForKey: login]; if (!o) - { + { o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL uid: login fieldName: @"c_defaults"]; @@ -497,11 +497,11 @@ _timeValue (NSString *key) - (NSUserDefaults *) userSettings { id o; - + o = [[SOGoCache cachedUserSettings] objectForKey: login]; if (!o) - { + { o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL uid: login fieldName: @"c_settings"]; @@ -897,12 +897,12 @@ _timeValue (NSString *key) // folder = [self homeFolderInContext:_ctx]; // if ([folder isKindOfClass:[NSException class]]) // return folder; - + // folder = [folder lookupName:@"Calendar" inContext:_ctx acquire:NO]; // if ([folder isKindOfClass:[NSException class]]) // return folder; - -// [(WOContext *)_ctx setObject:folder ? folder : [NSNull null] + +// [(WOContext *)_ctx setObject:folder ? folder : [NSNull null] // forKey:@"ActiveUserCalendar"]; // return folder; // } From 4c8ab65249e2fae4ea334a2faaf0d7f99187a665 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 13 Jan 2009 20:39:10 +0000 Subject: [PATCH 2/5] Monotone-Parent: 1a1f30934eb19691177704c8c1a92697a45c390e Monotone-Revision: 36d728b2182b4efc40beae193f9900664ed79af7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-01-13T20:39:10 Monotone-Branch: ca.inverse.sogo --- SoObjects/SOGo/SOGoUser.m | 82 ++++++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 32 deletions(-) diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index d6409aec6..ddca24ecc 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -464,54 +464,72 @@ _timeValue (NSString *key) return dateFormatter; } +- (SOGoUserDefaults *) primaryUserDefaults +{ + SOGoUserDefaults *o; + + o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL + uid: login + fieldName: @"c_defaults"]; + [o autorelease]; + + return o; +} + +- (SOGoUserDefaults *) primaryUserSettings +{ + SOGoUserDefaults *o; + + o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL + uid: login + fieldName: @"c_settings"]; + [o autorelease]; + + return o; +} + - (NSUserDefaults *) userDefaults { - id o; + SOGoUserDefaults *defaults; + NSDictionary *cachedDefaults; - o = [[SOGoCache cachedUserDefaults] objectForKey: login]; - - if (!o) + cachedDefaults = [[SOGoCache cachedUserDefaults] objectForKey: login]; + if (cachedDefaults) + defaults = [cachedDefaults objectForKey: @"dictionary"]; + else { - o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL - uid: login - fieldName: @"c_defaults"]; + defaults = [self primaryUserDefaults]; /* Required parameters for the web interface */ - if (![[o stringForKey: @"ReplyPlacement"] length]) - [o setObject: defaultReplyPlacement forKey: @"ReplyPlacement"]; - if (![[o stringForKey: @"SignaturePlacement"] length]) - [o setObject: defaultSignaturePlacement forKey: @"SignaturePlacement"]; - if (![[o stringForKey: @"MessageForwarding"] length]) - [o setObject: defaultMessageForwarding forKey: @"MessageForwarding"]; - if (![[o stringForKey: @"MessageCheck"] length]) - [o setObject: defaultMessageCheck forKey: @"MessageCheck"]; + if (![[defaults stringForKey: @"ReplyPlacement"] length]) + [defaults setObject: defaultReplyPlacement forKey: @"ReplyPlacement"]; + if (![[defaults stringForKey: @"SignaturePlacement"] length]) + [defaults setObject: defaultSignaturePlacement forKey: @"SignaturePlacement"]; + if (![[defaults stringForKey: @"MessageForwarding"] length]) + [defaults setObject: defaultMessageForwarding forKey: @"MessageForwarding"]; + if (![[defaults stringForKey: @"MessageCheck"] length]) + [defaults setObject: defaultMessageCheck forKey: @"MessageCheck"]; - [SOGoCache setCachedUserDefaults: o user: login]; - [o release]; - - return o; + [SOGoCache setCachedUserDefaults: defaults user: login]; } - return [o objectForKey: @"dictionary"]; + return (NSUserDefaults *) defaults; } - (NSUserDefaults *) userSettings { - id o; + SOGoUserDefaults *settings; + NSDictionary *cachedSettings; - o = [[SOGoCache cachedUserSettings] objectForKey: login]; - - if (!o) + cachedSettings = [[SOGoCache cachedUserSettings] objectForKey: login]; + if (cachedSettings) + settings = [cachedSettings objectForKey: @"dictionary"]; + else { - o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL - uid: login - fieldName: @"c_settings"]; - [SOGoCache setCachedUserSettings: o user: login]; - [o release]; - - return o; + settings = [self primaryUserSettings]; + [SOGoCache setCachedUserSettings: settings user: login]; } - return [o objectForKey: @"dictionary"]; + return (NSUserDefaults *) settings; } - (NSString *) language From f0ff76220829c1cb9c6d645f3ded8dab7dd243c3 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 13 Jan 2009 20:39:13 +0000 Subject: [PATCH 3/5] Monotone-Parent: 36d728b2182b4efc40beae193f9900664ed79af7 Monotone-Revision: 0b7bac15489b71af8e245ccf74e1bcc0e75b242f Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-01-13T20:39:13 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index f951f81b8..db20c8ef0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-01-13 Wolfgang Sourdeau + + * SoObjects/SOGo/SOGoUser.m ([SOGoUser -userDefaults]): make use + of more explicit names for the variables used. Invoke a new [self + primaryUserDefaults] that fetches the defaults from the database, + so as to separate that mechanism from the caching mechanisme. + ([SOGoUser -userSettings]): same as above. + 2009-01-09 Wolfgang Sourdeau * SoObjects/SOGo/SOGoContentObject.m ([SOGoContentObject From 1cb75927b24789a626344bdd2cea037397de128b Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 13 Jan 2009 20:39:19 +0000 Subject: [PATCH 4/5] Monotone-Parent: 0b7bac15489b71af8e245ccf74e1bcc0e75b242f Monotone-Revision: 57a604f8ed805a410df500ecbe2ca242e5a2a439 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-01-13T20:39:19 Monotone-Branch: ca.inverse.sogo --- SoObjects/SOGo/SOGoUserDefaults.m | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/SoObjects/SOGo/SOGoUserDefaults.m b/SoObjects/SOGo/SOGoUserDefaults.m index 73e837d9a..79b9860d5 100644 --- a/SoObjects/SOGo/SOGoUserDefaults.m +++ b/SoObjects/SOGo/SOGoUserDefaults.m @@ -47,7 +47,7 @@ static NSString *uidColumnName = @"c_uid"; uid: (NSString *) userID fieldName: (NSString *) defaultsFieldName { - if ((self = [super init])) + if ((self = [self init])) { if (tableURL && [userID length] > 0 && [defaultsFieldName length] > 0) @@ -67,13 +67,6 @@ static NSString *uidColumnName = @"c_uid"; return self; } -- (id) init -{ - [self release]; - - return nil; -} - - (void) dealloc { [values release]; @@ -296,16 +289,17 @@ static NSString *uidColumnName = @"c_uid"; { NSMutableDictionary *d; - d = [[NSMutableDictionary alloc] init]; + d = [NSMutableDictionary dictionary]; [d setObject: values forKey: @"values"]; [d setObject: uid forKey: @"uid"]; - + [[NSDistributedNotificationCenter defaultCenter] - postNotificationName: ([fieldName isEqualToString: @"c_defaults"] ? @"SOGoUserDefaultsHaveChanged" : @"SOGoUserSettingsHaveChanged") + postNotificationName: ([fieldName isEqualToString: @"c_defaults"] + ? @"SOGoUserDefaultsHaveChanged" + : @"SOGoUserSettingsHaveChanged") object: nil userInfo: d deliverImmediately: YES]; - [d release]; } return rc; From ee00e635ee34309789ea9934f147a69d50e6a04a Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 13 Jan 2009 20:39:56 +0000 Subject: [PATCH 5/5] Monotone-Parent: 57a604f8ed805a410df500ecbe2ca242e5a2a439 Monotone-Revision: af789fd2e2a4e534fd7125c5adc6956afb527781 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-01-13T20:39:56 Monotone-Branch: ca.inverse.sogo --- SoObjects/SOGo/SOGoCache.m | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/SoObjects/SOGo/SOGoCache.m b/SoObjects/SOGo/SOGoCache.m index e6cbf3090..1c8fa48c7 100644 --- a/SoObjects/SOGo/SOGoCache.m +++ b/SoObjects/SOGo/SOGoCache.m @@ -289,6 +289,7 @@ withName: (NSString *) name { SOGoUser *user; NSString *uid; + SOGoUserDefaults *defaults; uid = [[theNotification userInfo] objectForKey: @"uid"]; @@ -297,8 +298,9 @@ withName: (NSString *) name #endif if ((user = [users objectForKey: uid])) { - [[user userDefaults] setValues: [[theNotification userInfo] objectForKey: @"values"]]; - [SOGoCache setCachedUserDefaults: (SOGoUserDefaults*)[user userDefaults] user: uid]; + defaults = (SOGoUserDefaults *) [user userDefaults]; + [defaults setValues: [[theNotification userInfo] objectForKey: @"values"]]; + [SOGoCache setCachedUserDefaults: defaults user: uid]; } else { @@ -313,13 +315,15 @@ withName: (NSString *) name { SOGoUser *user; NSString *uid; - + SOGoUserDefaults *settings; + uid = [[theNotification userInfo] objectForKey: @"uid"]; if ((user = [users objectForKey: uid])) { - [[user userSettings] setValues: [[theNotification userInfo] objectForKey: @"values"]]; - [SOGoCache setCachedUserSettings: (SOGoUserDefaults *)[user userSettings] user: uid]; + settings = (SOGoUserDefaults *) [user userSettings]; + [settings setValues: [[theNotification userInfo] objectForKey: @"values"]]; + [SOGoCache setCachedUserSettings: settings user: uid]; } else {