From ada80546fde81969415a003ebf783a23cc8e2fb2 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 26 Jan 2012 19:56:24 +0000 Subject: [PATCH] Monotone-Parent: e89a46b719b80b6d34d9e7a110754e60344dd669 Monotone-Revision: bc440bc0c22c32437dc043e9566760ddd30fea67 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-01-26T19:56:24 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 +++++ OpenChange/MAPIStoreFSFolder.m | 5 +++++ OpenChange/MAPIStoreFolder.m | 8 +++++++- OpenChange/MAPIStoreMailFolder.m | 5 +++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cf40d5ec9..01919d3e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2012-01-26 Wolfgang Sourdeau + * OpenChange/MAPIStoreFolder.m (supportsSubFolders): new + overridable method that returns whether the current folder can + contain subfolders, nowithstanding the right of the current user + to create or access them. + * OpenChange/MAPIStoreSOGo.m (sogo_backend_list_contexts): new backend method. diff --git a/OpenChange/MAPIStoreFSFolder.m b/OpenChange/MAPIStoreFSFolder.m index bb6cf3d7b..8e8ab1ef6 100644 --- a/OpenChange/MAPIStoreFSFolder.m +++ b/OpenChange/MAPIStoreFSFolder.m @@ -295,4 +295,9 @@ static NSString *MAPIStoreRightFolderContact = @"RightsFolderContact"; return [self _testRoleForActiveUser: MAPIStoreRightCreateSubfolders]; } +- (BOOL) supportsSubFolders +{ + return YES; +} + @end diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index 155991b42..a8384bb5b 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -1141,7 +1141,8 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe access |= 0x02; if (userIsOwner || [self subscriberCanDeleteMessages]) access |= 0x04; - if (userIsOwner || [self subscriberCanCreateSubFolders]) + if ((userIsOwner || [self subscriberCanCreateSubFolders]) + && [self supportsSubFolders]) access |= 0x08; if (userIsOwner || [self subscriberCanCreateMessages]) access |= 0x10; @@ -1595,4 +1596,9 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe return NO; } +- (BOOL) supportsSubFolders +{ + return NO; +} + @end diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index 5df5bf0ef..57fc1b348 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -1179,6 +1179,11 @@ _parseCOPYUID (NSString *line, NSArray **destUIDsP) return childFolder; } +- (BOOL) supportsSubFolders +{ + return !usesAltNameSpace; +} + @end @implementation MAPIStoreSentItemsFolder : MAPIStoreMailFolder