Monotone-Parent: 4e23e038f2b0b7eddf8b30700b8c9a8910768f98

Monotone-Revision: 9235e5dc4d151a3cba8ad842ac39e1b2d18c8201

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-01-29T19:55:21
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2012-01-29 19:55:21 +00:00
parent a7da84c804
commit 4b81cb167d
33 changed files with 537 additions and 852 deletions

View File

@@ -39,6 +39,7 @@
#import "MAPIStorePropertySelectors.h"
#import "MAPIStoreSamDBUtils.h"
#import "MAPIStoreTypes.h"
#import "MAPIStoreUserContext.h"
#import "NSData+MAPIStore.h"
#import "NSObject+MAPIStore.h"
#import "NSString+MAPIStore.h"
@@ -286,10 +287,11 @@ rtf2html (NSData *compressedRTF)
{
enum mapistore_error rc;
MAPIStoreContext *context;
SOGoUser *ownerUser;
context = [self context];
if ([[context activeUser] isEqual: [context ownerUser]]
ownerUser = [[self userContext] sogoUser];
if ([[context activeUser] isEqual: ownerUser]
|| [self subscriberCanModifyMessage])
rc = [super addPropertiesFromRow: aRow];
else
@@ -432,9 +434,11 @@ rtf2html (NSData *compressedRTF)
uint64_t folderId;
struct mapistore_context *mstoreCtx;
MAPIStoreContext *context;
SOGoUser *ownerUser;
context = [self context];
if ([[context activeUser] isEqual: [context ownerUser]]
ownerUser = [[self userContext] sogoUser];
if ([[context activeUser] isEqual: ownerUser]
|| ((isNew
&& [(MAPIStoreFolder *) container subscriberCanCreateMessages])
|| (!isNew && [self subscriberCanModifyMessage])))
@@ -560,9 +564,11 @@ rtf2html (NSData *compressedRTF)
uint32_t access = 0;
BOOL userIsOwner;
MAPIStoreContext *context;
SOGoUser *ownerUser;
context = [self context];
userIsOwner = [[context activeUser] isEqual: [context ownerUser]];
ownerUser = [[self userContext] sogoUser];
userIsOwner = [[context activeUser] isEqual: ownerUser];
if (userIsOwner || [self subscriberCanModifyMessage])
access |= 0x01;
if (userIsOwner || [self subscriberCanReadMessage])
@@ -587,9 +593,11 @@ rtf2html (NSData *compressedRTF)
uint32_t access = 0;
BOOL userIsOwner;
MAPIStoreContext *context;
SOGoUser *ownerUser;
context = [self context];
userIsOwner = [[context activeUser] isEqual: [context ownerUser]];
ownerUser = [[self userContext] sogoUser];
userIsOwner = [[context activeUser] isEqual: ownerUser];
if (userIsOwner || [self subscriberCanModifyMessage])
access = 0x01;
else
@@ -862,14 +870,15 @@ rtf2html (NSData *compressedRTF)
- (NSArray *) activeUserRoles
{
MAPIStoreContext *context;
MAPIStoreUserContext *userContext;
if (!activeUserRoles)
{
context = [self context];
userContext = [self userContext];
activeUserRoles = [[context activeUser]
rolesForObject: sogoObject
inContext: [context woContext]];
inContext: [userContext woContext]];
[activeUserRoles retain];
}