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>
|
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:
|
* OpenChange/MAPIStoreTasksMessage.m:
|
||||||
invoke component:secure: with the secure parameter set to "YES" in
|
invoke component:secure: with the secure parameter set to "YES" in
|
||||||
all accessors that requires the iCalTask object.
|
all accessors that requires the iCalTask object.
|
||||||
|
|
|
@ -111,9 +111,9 @@
|
||||||
withMID: (uint64_t) mid
|
withMID: (uint64_t) mid
|
||||||
isAssociated: (BOOL) isAssociated;
|
isAssociated: (BOOL) isAssociated;
|
||||||
|
|
||||||
|
|
||||||
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
||||||
withMID: (uint64_t) mid
|
withMID: (uint64_t) mid
|
||||||
|
forWriting: (BOOL) readWrite
|
||||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||||
- (int) deleteMessageWithMID: (uint64_t) mid
|
- (int) deleteMessageWithMID: (uint64_t) mid
|
||||||
andFlags: (uint8_t) flags;
|
andFlags: (uint8_t) flags;
|
||||||
|
|
|
@ -403,6 +403,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
||||||
|
|
||||||
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
- (int) openMessage: (MAPIStoreMessage **) messagePtr
|
||||||
withMID: (uint64_t) mid
|
withMID: (uint64_t) mid
|
||||||
|
forWriting: (BOOL) readWrite
|
||||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||||
{
|
{
|
||||||
NSString *messageURL;
|
NSString *messageURL;
|
||||||
|
@ -416,10 +417,17 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
||||||
{
|
{
|
||||||
message = [self lookupMessageByURL: messageURL];
|
message = [self lookupMessageByURL: messageURL];
|
||||||
if (message)
|
if (message)
|
||||||
|
{
|
||||||
|
if ([[context activeUser] isEqual: [context ownerUser]]
|
||||||
|
|| (readWrite && [message subscriberCanModifyMessage])
|
||||||
|
|| (!readWrite && [message subscriberCanReadMessage]))
|
||||||
{
|
{
|
||||||
*messagePtr = message;
|
*messagePtr = message;
|
||||||
rc = MAPISTORE_SUCCESS;
|
rc = MAPISTORE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
rc = MAPISTORE_ERR_DENIED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -580,6 +588,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
||||||
memCtx = talloc_zero (NULL, TALLOC_CTX);
|
memCtx = talloc_zero (NULL, TALLOC_CTX);
|
||||||
rc = [sourceFolder openMessage: &sourceMsg
|
rc = [sourceFolder openMessage: &sourceMsg
|
||||||
withMID: srcMid
|
withMID: srcMid
|
||||||
|
forWriting: NO
|
||||||
inMemCtx: memCtx];
|
inMemCtx: memCtx];
|
||||||
if (rc != MAPISTORE_SUCCESS)
|
if (rc != MAPISTORE_SUCCESS)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
|
@ -359,7 +359,7 @@ sogo_folder_get_child_count(void *folder_object, uint8_t table_type, uint32_t *c
|
||||||
static int
|
static int
|
||||||
sogo_folder_open_message(void *folder_object,
|
sogo_folder_open_message(void *folder_object,
|
||||||
TALLOC_CTX *mem_ctx,
|
TALLOC_CTX *mem_ctx,
|
||||||
uint64_t mid,
|
uint64_t mid, bool write_access,
|
||||||
void **message_object)
|
void **message_object)
|
||||||
{
|
{
|
||||||
struct MAPIStoreTallocWrapper *wrapper;
|
struct MAPIStoreTallocWrapper *wrapper;
|
||||||
|
@ -375,7 +375,10 @@ sogo_folder_open_message(void *folder_object,
|
||||||
wrapper = folder_object;
|
wrapper = folder_object;
|
||||||
folder = wrapper->MAPIStoreSOGoObject;
|
folder = wrapper->MAPIStoreSOGoObject;
|
||||||
pool = [NSAutoreleasePool new];
|
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)
|
if (rc == MAPISTORE_SUCCESS)
|
||||||
*message_object = [message tallocWrapper: mem_ctx];
|
*message_object = [message tallocWrapper: mem_ctx];
|
||||||
[pool release];
|
[pool release];
|
||||||
|
|
Loading…
Reference in a new issue