merge of '484dfbcd9e1364cb46bc486c8a0669b0d2729d37'

and 'd85ac88023025021e4352537636d2fc8a8d43667'

Monotone-Parent: 484dfbcd9e1364cb46bc486c8a0669b0d2729d37
Monotone-Parent: d85ac88023025021e4352537636d2fc8a8d43667
Monotone-Revision: 9cddfa451166e89060a244252b01a2d1e4cc52be

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-10-14T19:08:58
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2011-10-14 19:08:58 +00:00
3 changed files with 26 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
2011-10-14 Ludovic Marcotte <lmarcotte@inverse.ca>
* SoObjects/SOGo/SOGoGCSFolder.m (setRoles:forUser:..)
We now even cache "None" roles.
* SoObjects/Mailer/SOGoMailObject.m (fetchCoreInfos)
We now handle correctly untagged responses.
2011-10-13 Francis Lachapelle <flachapelle@inverse.ca>
* Tools/SOGoToolUserPreferences.m (-run): added possibility to

View File

@@ -217,6 +217,7 @@ static BOOL debugSoParts = NO;
- (id) fetchCoreInfos
{
id msgs;
int i;
if (!coreInfos)
{
@@ -224,8 +225,21 @@ static BOOL debugSoParts = NO;
if (heavyDebug)
[self logWithFormat: @"M: %@", msgs];
msgs = [msgs valueForKey: @"fetch"];
// We MUST honor untagged IMAP responses here otherwise we could
// return really borken and nasty results.
if ([msgs count] > 0)
coreInfos = [msgs objectAtIndex: 0];
{
for (i = 0; i < [msgs count]; i++)
{
coreInfos = [msgs objectAtIndex: i];
if ([[coreInfos objectForKey: @"uid"] intValue] == [[self nameInContainer] intValue])
break;
coreInfos = nil;
}
}
[coreInfos retain];
}

View File

@@ -1637,11 +1637,13 @@ static NSArray *childRecordFields = nil;
[newRoles removeObject: SOGoRole_AuthorizedSubscriber];
[newRoles removeObject: SOGoRole_None];
objectPath = [objectPathArray componentsJoinedByString: @"/"];
[self _cacheRoles: newRoles forUser: uid
forObjectAtPath: objectPath];
if (![newRoles count])
[newRoles addObject: SOGoRole_None];
[self _cacheRoles: newRoles forUser: uid
forObjectAtPath: objectPath];
[self _commitRoles: newRoles forUID: aUID forObject: objectPath];
}