Monotone-Parent: be64ce923b1780a6ed810e7250748d84ad4425bb
Monotone-Revision: 7f9dd19e7f17c342c380ab2a0c551594be6d8762 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-02-02T01:45:17 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
28f7997539
commit
32ee60c025
10
ChangeLog
10
ChangeLog
|
@ -1,5 +1,15 @@
|
|||
2012-02-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/SOGoMAPIFSMessage.m (-delete): returns the exception
|
||||
rather than raising it.
|
||||
|
||||
* OpenChange/SOGoMAPIFSFolder.m (-delete): new method that removes
|
||||
the directory from the filesystem.
|
||||
|
||||
* OpenChange/MAPIStoreGCSFolder.m (-deleteFolder): overriden method.
|
||||
|
||||
* OpenChange/MAPIStoreFolder.m (-deleteFolder): implemented method.
|
||||
|
||||
* SoObjects/SOGo/SOGoParentFolder.m (-removeSubFolder): new method
|
||||
that removes a subfolder entry from the folder cache.
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
- (int) createFolder: (MAPIStoreFolder **) childFolderPtr
|
||||
withRow: (struct SRow *) aRow
|
||||
andFID: (uint64_t) fid;
|
||||
- (int) deleteFolderWithFID: (uint64_t) fid;
|
||||
- (int) deleteFolder;
|
||||
- (int) getChildCount: (uint32_t *) rowCount
|
||||
ofTableType: (enum mapistore_table_type) tableType;
|
||||
|
||||
|
|
|
@ -384,11 +384,13 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
|||
return rc;
|
||||
}
|
||||
|
||||
- (int) deleteFolderWithFID: (uint64_t) fid
|
||||
- (int) deleteFolder
|
||||
{
|
||||
[self logWithFormat: @"UNIMPLEMENTED METHOD '%s' (%d)", __FUNCTION__, __LINE__];
|
||||
[propsMessage delete];
|
||||
[propsFolder delete];
|
||||
[faiFolder delete];
|
||||
|
||||
return MAPISTORE_ERROR;
|
||||
return MAPISTORE_SUCCESS;
|
||||
}
|
||||
|
||||
- (int) getChildCount: (uint32_t *) rowCount
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#import <Foundation/NSCalendarDate.h>
|
||||
#import <Foundation/NSDictionary.h>
|
||||
#import <Foundation/NSException.h>
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
#import <EOControl/EOQualifier.h>
|
||||
#import <EOControl/EOFetchSpecification.h>
|
||||
|
@ -29,6 +30,7 @@
|
|||
#import <GDLContentStore/GCSFolder.h>
|
||||
#import <SOGo/NSArray+Utilities.h>
|
||||
#import <SOGo/SOGoGCSFolder.h>
|
||||
#import <SOGo/SOGoParentFolder.h>
|
||||
#import <SOGo/SOGoPermissions.h>
|
||||
#import <SOGo/SOGoUser.h>
|
||||
|
||||
|
@ -44,6 +46,7 @@
|
|||
|
||||
#undef DEBUG
|
||||
#include <mapistore/mapistore.h>
|
||||
#include <mapistore/mapistore_errors.h>
|
||||
|
||||
@implementation MAPIStoreGCSFolder
|
||||
|
||||
|
@ -72,6 +75,33 @@
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
- (int) deleteFolder
|
||||
{
|
||||
int rc;
|
||||
NSException *error;
|
||||
NSString *name;
|
||||
|
||||
name = [self nameInContainer];
|
||||
if ([name isEqualToString: @"personal"])
|
||||
rc = MAPISTORE_ERR_DENIED;
|
||||
else
|
||||
{
|
||||
[[sogoObject container] removeSubFolder: name];
|
||||
error = [(SOGoGCSFolder *) 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;
|
||||
}
|
||||
|
||||
- (void) addProperties: (NSDictionary *) newProperties
|
||||
{
|
||||
NSString *newDisplayName;
|
||||
|
|
|
@ -333,7 +333,7 @@ sogo_folder_create_folder(void *folder_object, TALLOC_CTX *mem_ctx,
|
|||
\return MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR
|
||||
*/
|
||||
static enum mapistore_error
|
||||
sogo_folder_delete_folder(void *folder_object, uint64_t fid)
|
||||
sogo_folder_delete(void *folder_object)
|
||||
{
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
NSAutoreleasePool *pool;
|
||||
|
@ -347,7 +347,7 @@ sogo_folder_delete_folder(void *folder_object, uint64_t fid)
|
|||
wrapper = folder_object;
|
||||
folder = wrapper->MAPIStoreSOGoObject;
|
||||
pool = [NSAutoreleasePool new];
|
||||
rc = [folder deleteFolderWithFID: fid];
|
||||
rc = [folder deleteFolder];
|
||||
[pool release];
|
||||
}
|
||||
else
|
||||
|
@ -1244,7 +1244,7 @@ int mapistore_init_backend(void)
|
|||
backend.context.get_root_folder = sogo_context_get_root_folder;
|
||||
backend.folder.open_folder = sogo_folder_open_folder;
|
||||
backend.folder.create_folder = sogo_folder_create_folder;
|
||||
backend.folder.delete_folder = sogo_folder_delete_folder;
|
||||
backend.folder.delete = sogo_folder_delete;
|
||||
backend.folder.open_message = sogo_folder_open_message;
|
||||
backend.folder.create_message = sogo_folder_create_message;
|
||||
backend.folder.delete_message = sogo_folder_delete_message;
|
||||
|
|
|
@ -314,6 +314,23 @@ static NSString *privateDir = nil;
|
|||
return [self _fileAttributeForKey: NSFileModificationDate];
|
||||
}
|
||||
|
||||
- (NSException *) delete
|
||||
{
|
||||
NSFileManager *fm;
|
||||
NSException *error;
|
||||
|
||||
fm = [NSFileManager defaultManager];
|
||||
|
||||
if (![fm removeFileAtPath: directory handler: NULL])
|
||||
error = [NSException exceptionWithName: @"MAPIStoreIOException"
|
||||
reason: @"could not delete folder"
|
||||
userInfo: nil];
|
||||
else
|
||||
error = nil;
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
/* acl */
|
||||
- (NSString *) defaultUserID
|
||||
{
|
||||
|
|
|
@ -141,14 +141,18 @@
|
|||
- (NSException *) delete
|
||||
{
|
||||
NSFileManager *fm;
|
||||
NSException *error;
|
||||
|
||||
fm = [NSFileManager defaultManager];
|
||||
|
||||
if (![fm removeFileAtPath: [self completeFilename] handler: NULL])
|
||||
[NSException raise: @"MAPIStoreIOException"
|
||||
format: @"could not delete message"];
|
||||
error = [NSException exceptionWithName: @"MAPIStoreIOException"
|
||||
reason: @"could not delete message"
|
||||
userInfo: nil];
|
||||
else
|
||||
error = nil;
|
||||
|
||||
return nil;
|
||||
return error;
|
||||
}
|
||||
|
||||
- (id) _fileAttributeForKey: (NSString *) key
|
||||
|
|
Loading…
Reference in New Issue