diff --git a/ChangeLog b/ChangeLog index e40b7f3cb..3a3077043 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2012-02-03 Wolfgang Sourdeau + * OpenChange/MAPIStoreMailFolder.m (-deleteFolder): overriden method. + * SoObjects/Mailer/SOGoMailFolder.m (-exists): new method that returns whether an IMAP folder exists or not yet. diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index 0541c6beb..a5e3483bd 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -158,6 +158,32 @@ static Class SOGoMailFolderK; return nameInContainer; } +- (int) deleteFolder +{ + int rc; + NSException *error; + NSString *name; + + name = [self nameInContainer]; + if ([name isEqualToString: @"folderINBOX"]) + rc = MAPISTORE_ERR_DENIED; + else + { + error = [(SOGoMailFolder *) sogoObject delete]; + if (error) + rc = MAPISTORE_ERROR; + else + { + if (![versionsMessage delete]) + rc = MAPISTORE_SUCCESS; + else + rc = MAPISTORE_ERROR; + } + } + + return (rc == MAPISTORE_SUCCESS) ? [super deleteFolder] : rc; +} + - (int) getPrContentUnread: (void **) data inMemCtx: (TALLOC_CTX *) memCtx {