mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-22 03:45:25 +00:00
Monotone-Parent: a4e75419096a27680565f5482896e2fd64877b97
Monotone-Revision: 4cbfcc8ac9c9c474165cdf1d49e3c456e68e8179 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-10-04T19:55:39 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
2011-10-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
2011-10-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoObject.m (-davComplianceClassesInContext:):
|
||||
take all the supported DAV object classes in charge, in order to
|
||||
simplify the handling of those on topmost folders.
|
||||
|
||||
* OpenChange/MAPIStoreFolder.m (-deleteMessageWithMID:andFlags:):
|
||||
invoke "prepareDelete" on the message object when available.
|
||||
|
||||
@@ -1964,23 +1964,6 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
|
||||
return obj;
|
||||
}
|
||||
|
||||
- (NSArray *) davComplianceClassesInContext: (id)_ctx
|
||||
{
|
||||
NSMutableArray *classes;
|
||||
NSArray *primaryClasses;
|
||||
|
||||
classes = [NSMutableArray array];
|
||||
|
||||
primaryClasses = [super davComplianceClassesInContext: _ctx];
|
||||
if (primaryClasses)
|
||||
[classes addObjectsFromArray: primaryClasses];
|
||||
[classes addObject: @"calendar-access"];
|
||||
//[classes addObject: @"calendar-schedule"];
|
||||
[classes addObject: @"calendar-auto-schedule"];
|
||||
|
||||
return classes;
|
||||
}
|
||||
|
||||
- (NSArray *) groupDavResourceType
|
||||
{
|
||||
return [NSArray arrayWithObjects: @"vevent-collection",
|
||||
|
||||
@@ -371,24 +371,6 @@ static SoSecurityManager *sm = nil;
|
||||
return error;
|
||||
}
|
||||
|
||||
- (NSArray *) davComplianceClassesInContext: (id)_ctx
|
||||
{
|
||||
NSMutableArray *classes;
|
||||
NSArray *primaryClasses;
|
||||
|
||||
classes = [NSMutableArray array];
|
||||
|
||||
primaryClasses = [super davComplianceClassesInContext: _ctx];
|
||||
if (primaryClasses)
|
||||
[classes addObjectsFromArray: primaryClasses];
|
||||
[classes addObject: @"calendar-access"];
|
||||
//[classes addObject: @"calendar-schedule"];
|
||||
[classes addObject: @"calendar-auto-schedule"];
|
||||
|
||||
|
||||
return classes;
|
||||
}
|
||||
|
||||
- (SOGoWebDAVValue *) davCalendarComponentSet
|
||||
{
|
||||
static SOGoWebDAVValue *componentSet = nil;
|
||||
|
||||
@@ -321,23 +321,6 @@ static NSArray *folderListingFields = nil;
|
||||
return davSQLFieldsTable;
|
||||
}
|
||||
|
||||
- (NSArray *) davComplianceClassesInContext: (id)_ctx
|
||||
{
|
||||
NSMutableArray *classes;
|
||||
NSArray *primaryClasses;
|
||||
|
||||
classes = [NSMutableArray new];
|
||||
[classes autorelease];
|
||||
|
||||
primaryClasses = [super davComplianceClassesInContext: _ctx];
|
||||
if (primaryClasses)
|
||||
[classes addObjectsFromArray: primaryClasses];
|
||||
[classes addObject: @"access-control"];
|
||||
[classes addObject: @"addressbook-access"];
|
||||
|
||||
return classes;
|
||||
}
|
||||
|
||||
- (NSString *) groupDavResourceType
|
||||
{
|
||||
return @"vcard-collection";
|
||||
|
||||
+92
-11
@@ -1121,21 +1121,102 @@
|
||||
|
||||
- (NSArray *) davComplianceClassesInContext: (WOContext *) localContext
|
||||
{
|
||||
static NSMutableArray *newClasses = nil;
|
||||
NSArray *selfClasses;
|
||||
NSMutableArray *classes;
|
||||
static NSArray *calendarClasses = nil, *contactsClasses = nil,
|
||||
*upperClasses = nil;
|
||||
NSArray *caldavClasses;
|
||||
BOOL found = NO, needCalDAVClasses = NO, needCardDAVClasses = NO;
|
||||
NSUInteger count, max;
|
||||
|
||||
if (!newClasses)
|
||||
/* popuplate static arrays */
|
||||
if (!upperClasses)
|
||||
{
|
||||
newClasses
|
||||
= [[super davComplianceClassesInContext: localContext] mutableCopy];
|
||||
selfClasses = [NSArray arrayWithObjects: @"access-control",
|
||||
@"calendar-access", @"calendar-schedule",
|
||||
@"calendar-auto-schedule", @"calendar-proxy",
|
||||
nil];
|
||||
[newClasses addObjectsFromArray: selfClasses];
|
||||
upperClasses = [NSArray arrayWithObjects:
|
||||
NSClassFromString (@"SOGoPublicBaseFolder"),
|
||||
NSClassFromString (@"SOGoUserFolder"),
|
||||
nil];
|
||||
[upperClasses retain];
|
||||
}
|
||||
|
||||
return newClasses;
|
||||
if (!calendarClasses)
|
||||
{
|
||||
calendarClasses
|
||||
= [NSArray arrayWithObjects:
|
||||
NSClassFromString (@"SOGoAppointmentFolders"),
|
||||
NSClassFromString (@"SOGoAppointmentFolder"),
|
||||
nil];
|
||||
[calendarClasses retain];
|
||||
}
|
||||
|
||||
if (!contactsClasses)
|
||||
{
|
||||
contactsClasses
|
||||
= [NSArray arrayWithObjects:
|
||||
NSClassFromString (@"SOGoContactFolders"),
|
||||
NSClassFromString (@"SOGoContacGCSFolder"),
|
||||
NSClassFromString (@"SOGoContactSourceFolder"),
|
||||
nil];
|
||||
[contactsClasses retain];
|
||||
}
|
||||
|
||||
/* determine which kind of object we are dealing with */
|
||||
if ([self isFolderish])
|
||||
{
|
||||
max = [upperClasses count];
|
||||
for (count = 0; !found && count < max; count++)
|
||||
{
|
||||
if ([self isKindOfClass: [upperClasses objectAtIndex: count]])
|
||||
{
|
||||
found = YES;
|
||||
needCalDAVClasses = YES;
|
||||
needCardDAVClasses = YES;
|
||||
}
|
||||
}
|
||||
|
||||
max = [calendarClasses count];
|
||||
for (count = 0; !found && count < max; count++)
|
||||
{
|
||||
if ([self isKindOfClass: [calendarClasses objectAtIndex: count]])
|
||||
{
|
||||
found = YES;
|
||||
needCalDAVClasses = YES;
|
||||
}
|
||||
}
|
||||
|
||||
max = [contactsClasses count];
|
||||
for (count = 0; !found && count < max; count++)
|
||||
{
|
||||
if ([self isKindOfClass: [contactsClasses objectAtIndex: count]])
|
||||
{
|
||||
found = YES;
|
||||
needCardDAVClasses = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* prepare the array */
|
||||
classes = [[super davComplianceClassesInContext: localContext]
|
||||
mutableCopy];
|
||||
if (!classes)
|
||||
classes = [NSMutableArray new];
|
||||
[classes autorelease];
|
||||
|
||||
/* generic */
|
||||
[classes addObject: @"access-control"];
|
||||
|
||||
/* CardDAV */
|
||||
if (needCardDAVClasses)
|
||||
[classes addObject: @"addressbook"];
|
||||
|
||||
/* CalDAV */
|
||||
if (needCalDAVClasses)
|
||||
{
|
||||
caldavClasses = [NSArray arrayWithObjects: @"calendar-access", @"calendar-schedule",
|
||||
@"calendar-auto-schedule", @"calendar-proxy", nil];
|
||||
[classes addObjectsFromArray: caldavClasses];
|
||||
}
|
||||
|
||||
return classes;
|
||||
}
|
||||
|
||||
/* dav acls */
|
||||
|
||||
Reference in New Issue
Block a user