Monotone-Parent: d067eec2c3a6e9f8ecea3e4d6824f17f41a4af7a

Monotone-Revision: 8cbe30e65e9874e7812378f06bbda442c37788b4

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2010-04-09T20:17:03
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau 2010-04-09 20:17:03 +00:00
parent f7043478c7
commit 3dab983c97
2 changed files with 23 additions and 16 deletions

View file

@ -1,5 +1,9 @@
2010-04-09 Wolfgang Sourdeau <wsourdeau@inverse.ca> 2010-04-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Mailer/SOGoMailFolder.m (-aclsForUser:): don't fetch
ACL when the current user is not the mailbox owner. Also, we don't
set default viewing roles when the uid is not the active user.
* SoObjects/SOGo/SOGoObject.m (-labelForKey:): restored method. * SoObjects/SOGo/SOGoObject.m (-labelForKey:): restored method.
* SoObjects/Appointments/SOGoAptMailUpdate.m, * SoObjects/Appointments/SOGoAptMailUpdate.m,

View file

@ -903,18 +903,14 @@ static NSString *defaultUserID = @"anyone";
NSMutableArray *acls; NSMutableArray *acls;
SOGoMailAccount *mailAccount; SOGoMailAccount *mailAccount;
NSString *path; NSString *path;
// NSArray *names;
// unsigned int count;
acls = [NSMutableArray array]; acls = [NSMutableArray array];
mailAccount = [self mailAccountFolder]; mailAccount = [self mailAccountFolder];
path = [[self imap4Connection] imap4FolderNameForURL: [self imap4URL]]; path = [[self imap4Connection] imap4FolderNameForURL: [self imap4URL]];
// names = [path componentsSeparatedByString: @"/"];
// count = [names count];
if ([self _path: path if ([self _path: path
isInNamespaces: [mailAccount sharedFolderNamespaces]] isInNamespaces: [mailAccount otherUsersFolderNamespaces]]
|| [self _path: path || [self _path: path
isInNamespaces: [mailAccount sharedFolderNamespaces]]) isInNamespaces: [mailAccount sharedFolderNamespaces]])
[acls addObject: SOGoRole_ObjectViewer]; [acls addObject: SOGoRole_ObjectViewer];
@ -927,20 +923,27 @@ static NSString *defaultUserID = @"anyone";
- (NSArray *) aclsForUser: (NSString *) uid - (NSArray *) aclsForUser: (NSString *) uid
{ {
NSMutableArray *acls; NSMutableArray *acls;
NSString *userAcls; NSString *userAcls, *userLogin;
acls = [self _sharesACLs]; userLogin = [[context activeUser] login];
if ([uid isEqualToString: userLogin])
acls = [self _sharesACLs];
else
acls = [NSMutableArray array];
if (!mailboxACL) if ([owner isEqualToString: userLogin])
[self _readMailboxACL];
if ([mailboxACL isKindOfClass: [NSDictionary class]])
{ {
userAcls = [mailboxACL objectForKey: uid]; if (!mailboxACL)
if (!([userAcls length] || [uid isEqualToString: defaultUserID])) [self _readMailboxACL];
userAcls = [mailboxACL objectForKey: defaultUserID];
if ([userAcls length]) if ([mailboxACL isKindOfClass: [NSDictionary class]])
[acls addObjectsFromArray: [self _imapAclsToSOGoAcls: userAcls]]; {
userAcls = [mailboxACL objectForKey: uid];
if (!([userAcls length] || [uid isEqualToString: defaultUserID]))
userAcls = [mailboxACL objectForKey: defaultUserID];
if ([userAcls length])
[acls addObjectsFromArray: [self _imapAclsToSOGoAcls: userAcls]];
}
} }
return acls; return acls;