From dab48cf12a8cc585e14769329d4f870446403f55 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 2 Feb 2010 21:42:17 +0000 Subject: [PATCH] Monotone-Parent: 56021366a01dca213c584b0652d1fb04b91c7f22 Monotone-Revision: 9d18fbe46d6a29e9e61882026aae14cdf40ecd7c Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-02-02T21:42:17 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 8 ++ .../Appointments/SOGoAppointmentObject.m | 87 +++---------------- .../Appointments/SOGoCalendarComponent.m | 70 ++++++++++++++- 3 files changed, 87 insertions(+), 78 deletions(-) diff --git a/ChangeLog b/ChangeLog index ffdb51e37..a7cbace9c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2010-02-02 Wolfgang Sourdeau + * Tests/Integration/test-davacl.py + (DAVCalendarAclTest._testEventDAVAcl): test + current-user-privilege-set on tasks too. + + * SoObjects/Appointments/SOGoCalendarComponent.m + (+webdavAclManager): moved method from SOGoAppointmentObject, so + that tasks can benefit from it too. + * SoObjects/Appointments/SOGoAppointmentObject.m (+webdavAclManager): view-whole-component and view-date-and-time are now independent and children of "all". "read" is declared as diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index da903985c..947546bed 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -37,17 +37,16 @@ #import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import "iCalEventChanges+SOGo.h" #import "iCalEntityObject+SOGo.h" @@ -61,72 +60,6 @@ @implementation SOGoAppointmentObject -+ (SOGoWebDAVAclManager *) webdavAclManager -{ - static SOGoWebDAVAclManager *aclManager = nil; - NSString *nsD, *nsI; - - if (!aclManager) - { - nsD = @"DAV:"; - nsI = @"urn:inverse:params:xml:ns:inverse-dav"; - - aclManager = [SOGoWebDAVAclManager new]; - - [aclManager registerDAVPermission: davElement (@"read", nsD) - abstract: NO - withEquivalent: @"SOGoDAVReadPermission" /* hackish */ - asChildOf: davElement (@"all", nsD)]; - [aclManager registerDAVPermission: davElement (@"view-whole-component", nsI) - abstract: NO - withEquivalent: SOGoCalendarPerm_ViewAllComponent - asChildOf: davElement (@"all", nsD)]; - [aclManager registerDAVPermission: davElement (@"view-date-and-time", nsI) - abstract: NO - withEquivalent: SOGoCalendarPerm_ViewDAndT - asChildOf: davElement (@"all", nsD)]; - [aclManager registerDAVPermission: davElement (@"read-current-user-privilege-set", nsD) - abstract: NO - withEquivalent: SoPerm_WebDAVAccess - asChildOf: davElement (@"all", nsD)]; - [aclManager registerDAVPermission: davElement (@"write", nsD) - abstract: NO - withEquivalent: SOGoCalendarPerm_ModifyComponent - asChildOf: davElement (@"all", nsD)]; - [aclManager - registerDAVPermission: davElement (@"write-properties", nsD) - abstract: YES - withEquivalent: SoPerm_ChangePermissions /* hackish */ - asChildOf: davElement (@"write", nsD)]; - [aclManager - registerDAVPermission: davElement (@"write-content", nsD) - abstract: YES - withEquivalent: nil - asChildOf: davElement (@"write", nsD)]; - [aclManager - registerDAVPermission: davElement (@"respond-to-component", nsI) - abstract: NO - withEquivalent: SOGoCalendarPerm_RespondToComponent - asChildOf: davElement (@"write-content", nsD)]; - [aclManager registerDAVPermission: davElement (@"admin", nsI) - abstract: YES - withEquivalent: nil - asChildOf: davElement (@"all", nsD)]; - [aclManager - registerDAVPermission: davElement (@"read-acl", nsD) - abstract: YES - withEquivalent: SOGoPerm_ReadAcls - asChildOf: davElement (@"admin", nsI)]; - [aclManager - registerDAVPermission: davElement (@"write-acl", nsD) - abstract: YES - withEquivalent: nil - asChildOf: davElement (@"admin", nsI)]; - } - - return aclManager; -} - - (NSString *) componentTag { return @"vevent"; diff --git a/SoObjects/Appointments/SOGoCalendarComponent.m b/SoObjects/Appointments/SOGoCalendarComponent.m index 88b367914..3a8abac2b 100644 --- a/SoObjects/Appointments/SOGoCalendarComponent.m +++ b/SoObjects/Appointments/SOGoCalendarComponent.m @@ -41,15 +41,17 @@ #import #import -#import #import #import +#import #import #import #import #import #import #import +#import +#import #import #import @@ -64,6 +66,72 @@ @implementation SOGoCalendarComponent ++ (SOGoWebDAVAclManager *) webdavAclManager +{ + static SOGoWebDAVAclManager *aclManager = nil; + NSString *nsD, *nsI; + + if (!aclManager) + { + nsD = @"DAV:"; + nsI = @"urn:inverse:params:xml:ns:inverse-dav"; + + aclManager = [SOGoWebDAVAclManager new]; + + [aclManager registerDAVPermission: davElement (@"read", nsD) + abstract: NO + withEquivalent: @"SOGoDAVReadPermission" /* hackish */ + asChildOf: davElement (@"all", nsD)]; + [aclManager registerDAVPermission: davElement (@"view-whole-component", nsI) + abstract: NO + withEquivalent: SOGoCalendarPerm_ViewAllComponent + asChildOf: davElement (@"all", nsD)]; + [aclManager registerDAVPermission: davElement (@"view-date-and-time", nsI) + abstract: NO + withEquivalent: SOGoCalendarPerm_ViewDAndT + asChildOf: davElement (@"all", nsD)]; + [aclManager registerDAVPermission: davElement (@"read-current-user-privilege-set", nsD) + abstract: NO + withEquivalent: SoPerm_WebDAVAccess + asChildOf: davElement (@"all", nsD)]; + [aclManager registerDAVPermission: davElement (@"write", nsD) + abstract: NO + withEquivalent: SOGoCalendarPerm_ModifyComponent + asChildOf: davElement (@"all", nsD)]; + [aclManager + registerDAVPermission: davElement (@"write-properties", nsD) + abstract: YES + withEquivalent: SoPerm_ChangePermissions /* hackish */ + asChildOf: davElement (@"write", nsD)]; + [aclManager + registerDAVPermission: davElement (@"write-content", nsD) + abstract: YES + withEquivalent: nil + asChildOf: davElement (@"write", nsD)]; + [aclManager + registerDAVPermission: davElement (@"respond-to-component", nsI) + abstract: NO + withEquivalent: SOGoCalendarPerm_RespondToComponent + asChildOf: davElement (@"write-content", nsD)]; + [aclManager registerDAVPermission: davElement (@"admin", nsI) + abstract: YES + withEquivalent: nil + asChildOf: davElement (@"all", nsD)]; + [aclManager + registerDAVPermission: davElement (@"read-acl", nsD) + abstract: YES + withEquivalent: SOGoPerm_ReadAcls + asChildOf: davElement (@"admin", nsI)]; + [aclManager + registerDAVPermission: davElement (@"write-acl", nsD) + abstract: YES + withEquivalent: nil + asChildOf: davElement (@"admin", nsI)]; + } + + return aclManager; +} + - (id) init { if ((self = [super init]))