Monotone-Parent: 22be47412187379c5790339050a32efb324de72f
Monotone-Revision: 0876527d52dfa5e4ddfcb4dee4220d4d6bd27eec Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-12-01T22:28:12 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
2c0553cdad
commit
4641b917c7
|
@ -1,5 +1,14 @@
|
|||
2011-12-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreFolder.m
|
||||
(-openMessage:withMID:forWriting:inMemCtx:): takes a new
|
||||
"forWriting:" parameter and make use of subscriberCanModifyMessage
|
||||
and subscriberCanReadMessage to return a proper error code, if
|
||||
needed.
|
||||
|
||||
* OpenChange/MAPIStoreSOGo.m (sogo_folder_open_message): added the
|
||||
"write_access" parameter.
|
||||
|
||||
* OpenChange/MAPIStoreTasksMessage.m:
|
||||
invoke component:secure: with the secure parameter set to "YES" in
|
||||
all accessors that requires the iCalTask object.
|
||||
|
|
|
@ -111,9 +111,9 @@
|
|||
withMID: (uint64_t) mid
|
||||
isAssociated: (BOOL) isAssociated;
|
||||
|
||||
|
||||
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
||||
withMID: (uint64_t) mid
|
||||
forWriting: (BOOL) readWrite
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
- (int) deleteMessageWithMID: (uint64_t) mid
|
||||
andFlags: (uint8_t) flags;
|
||||
|
|
|
@ -403,6 +403,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
|||
|
||||
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
||||
withMID: (uint64_t) mid
|
||||
forWriting: (BOOL) readWrite
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
{
|
||||
NSString *messageURL;
|
||||
|
@ -417,8 +418,15 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
|||
message = [self lookupMessageByURL: messageURL];
|
||||
if (message)
|
||||
{
|
||||
*messagePtr = message;
|
||||
rc = MAPISTORE_SUCCESS;
|
||||
if ([[context activeUser] isEqual: [context ownerUser]]
|
||||
|| (readWrite && [message subscriberCanModifyMessage])
|
||||
|| (!readWrite && [message subscriberCanReadMessage]))
|
||||
{
|
||||
*messagePtr = message;
|
||||
rc = MAPISTORE_SUCCESS;
|
||||
}
|
||||
else
|
||||
rc = MAPISTORE_ERR_DENIED;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -580,6 +588,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
|||
memCtx = talloc_zero (NULL, TALLOC_CTX);
|
||||
rc = [sourceFolder openMessage: &sourceMsg
|
||||
withMID: srcMid
|
||||
forWriting: NO
|
||||
inMemCtx: memCtx];
|
||||
if (rc != MAPISTORE_SUCCESS)
|
||||
goto end;
|
||||
|
|
|
@ -359,7 +359,7 @@ sogo_folder_get_child_count(void *folder_object, uint8_t table_type, uint32_t *c
|
|||
static int
|
||||
sogo_folder_open_message(void *folder_object,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
uint64_t mid,
|
||||
uint64_t mid, bool write_access,
|
||||
void **message_object)
|
||||
{
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
|
@ -375,7 +375,10 @@ sogo_folder_open_message(void *folder_object,
|
|||
wrapper = folder_object;
|
||||
folder = wrapper->MAPIStoreSOGoObject;
|
||||
pool = [NSAutoreleasePool new];
|
||||
rc = [folder openMessage: &message withMID: mid inMemCtx: mem_ctx];
|
||||
rc = [folder openMessage: &message
|
||||
withMID: mid
|
||||
forWriting: write_access
|
||||
inMemCtx: mem_ctx];
|
||||
if (rc == MAPISTORE_SUCCESS)
|
||||
*message_object = [message tallocWrapper: mem_ctx];
|
||||
[pool release];
|
||||
|
|
Loading…
Reference in a new issue