See ChangeLog

Monotone-Parent: c6f02e683516d8272f34a92875af92b45b067767
Monotone-Revision: d7f6037ae6e1e2123a306d459ff6f96271bfc190

Monotone-Author: crobert@inverse.ca
Monotone-Date: 2009-10-15T21:33:56
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
C Robert 2009-10-15 21:33:56 +00:00
parent a5cafe30b6
commit 891f31d0b1
6 changed files with 57 additions and 4 deletions

View File

@ -1,3 +1,14 @@
2009-10-15 Cyril Robert <crobert@inverse.ca>
* SoObjects/Appointments/SOGoAppointmentFolders.m
(+webdavAclManager): Added to fix issues with iPhones (3.1.2)
* SoObjects/Appointments/SOGoAppointmentFolder.m
(+webdavAclManager): Changed write-properties and write-content to
non-abstract, and set the equivalent for write-content to
SoPerm_AddDocumentsImagesAndFiles
* SoObjects/SOGo/SOGoWebDAVAclManager.m (-copyWithZone:): Added to allow
object copy (useful for SOGoAppointmentFolders)
2009-10-15 Ludovic Marcotte <lmarcotte@inverse.ca>
* Added SOPE/NGCards/TimeZones/* - generated from

View File

@ -221,13 +221,13 @@ static int davCalendarStartTimeLimit, davTimeLimitSeconds,
asChildOf: davElement (@"write", XMLNS_WEBDAV)];
[aclManager
registerDAVPermission: davElement (@"write-properties", XMLNS_WEBDAV)
abstract: YES
abstract: NO
withEquivalent: SoPerm_ChangePermissions /* hackish */
asChildOf: davElement (@"write", XMLNS_WEBDAV)];
[aclManager
registerDAVPermission: davElement (@"write-content", XMLNS_WEBDAV)
abstract: YES
withEquivalent: nil
abstract: NO
withEquivalent: SoPerm_AddDocumentsImagesAndFiles
asChildOf: davElement (@"write", XMLNS_WEBDAV)];
[aclManager registerDAVPermission: davElement (@"admin", nsI)
abstract: YES

View File

@ -39,6 +39,10 @@
#import <SOGo/NSObject+DAV.h>
#import <SOGo/SOGoWebDAVValue.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoParentFolder.h>
#import <SOGo/SOGoPermissions.h>
#import <SOGo/SOGoWebDAVAclManager.h>
#import "SOGoAppointmentFolder.h"
#import "SOGoWebAppointmentFolder.h"
@ -341,4 +345,30 @@
return error;
}
+ (SOGoWebDAVAclManager *) webdavAclManager
{
static SOGoWebDAVAclManager *aclManager = nil;
if (!aclManager)
{
aclManager = [[super webdavAclManager] copy];
[aclManager
registerDAVPermission: davElement (@"write", XMLNS_WEBDAV)
abstract: NO
withEquivalent: SoPerm_AddDocumentsImagesAndFiles
asChildOf: davElement (@"all", XMLNS_WEBDAV)];
[aclManager
registerDAVPermission: davElement (@"write-properties", XMLNS_WEBDAV)
abstract: YES
withEquivalent: SoPerm_AddDocumentsImagesAndFiles
asChildOf: davElement (@"write", XMLNS_WEBDAV)];
[aclManager
registerDAVPermission: davElement (@"write-content", XMLNS_WEBDAV)
abstract: YES
withEquivalent: SoPerm_AddDocumentsImagesAndFiles
asChildOf: davElement (@"write", XMLNS_WEBDAV)];
}
return aclManager;
}
@end

View File

@ -82,6 +82,8 @@ SEL SOGoSelectorForPropertySetter (NSString *property);
- (id) initWithName: (NSString *) _name inContainer:(id)_container;
+ (SOGoWebDAVAclManager *) webdavAclManager;
/* accessors */
- (NSString *) nameInContainer;

View File

@ -33,7 +33,7 @@
@class SOGoUser;
@class SOGoWebDAVValue;
@interface SOGoWebDAVAclManager : NSObject
@interface SOGoWebDAVAclManager : NSObject <NSCopying>
{
NSMutableDictionary *aclTree;
}

View File

@ -262,4 +262,14 @@ static NSNumber *yesObject = nil;
[aclTree objectForKey: @"{DAV:}all"]];
}
- (id) copyWithZone: (NSZone *) aZone
{
SOGoWebDAVAclManager *x;
x = [[SOGoWebDAVAclManager allocWithZone: aZone] init];
x->aclTree = [aclTree mutableCopyWithZone: aZone];
return x;
}
@end