Monotone-Parent: d102adf292e54c9c4f3572b83e38879d24b721d0

Monotone-Revision: 1d22ee7adc99b9420d9a7b859dfb1048c8c92eaa

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-11-18T15:26:03
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2011-11-18 15:26:03 +00:00
parent 5eccd63a2b
commit 4e17404e8c
13 changed files with 786 additions and 32 deletions

View File

@@ -23,6 +23,7 @@
#import <Foundation/NSURL.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <EOControl/EOQualifier.h>
#import <SOGo/SOGoPermissions.h>
#import <Contacts/SOGoContactGCSEntry.h>
#import <Contacts/SOGoContactFolders.h>
@@ -33,6 +34,9 @@
#import "MAPIStoreContactsFolder.h"
#include <util/time.h>
#include <gen_ndr/exchange.h>
@implementation MAPIStoreContactsFolder
- (id) initWithURL: (NSURL *) newURL
@@ -103,4 +107,39 @@
return newMessage;
}
- (NSArray *) rolesForExchangeRights: (uint32_t) rights
{
NSMutableArray *roles;
roles = [NSMutableArray arrayWithCapacity: 6];
if (rights & RightsCreateItems)
[roles addObject: SOGoRole_ObjectCreator];
if (rights & RightsDeleteAll)
[roles addObject: SOGoRole_ObjectEraser];
if (rights & RightsEditAll)
[roles addObject: SOGoRole_ObjectEditor];
if (rights & RightsReadItems)
[roles addObject: SOGoRole_ObjectViewer];
return roles;
}
- (uint32_t) exchangeRightsForRoles: (NSArray *) roles
{
uint32_t rights = 0;
if ([roles containsObject: SOGoRole_ObjectCreator])
rights |= RightsCreateItems;
if ([roles containsObject: SOGoRole_ObjectEraser])
rights |= RightsDeleteAll;
if ([roles containsObject: SOGoRole_ObjectEditor])
rights |= RightsEditAll;
if ([roles containsObject: SOGoRole_ObjectViewer])
rights |= RightsReadItems;
if (rights != 0)
rights |= RoleNone; /* actually "folder visible" */
return rights;
}
@end