Monotone-Parent: d61516dbee88e6bc6828689bf6efabde759a5a80

Monotone-Revision: cb2b5ac6d1deb889762cf2eadc58376d6ab9f534

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-05-02T23:11:21
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-05-02 23:11:21 +00:00
parent 18f4470fed
commit b88f44fff3
3 changed files with 109 additions and 5 deletions
+6
View File
@@ -1,5 +1,11 @@
2008-05-02 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder
+webdavAclManager]): new overriden method.
* SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder
+webdavAclManager]): new overriden method.
* UI/MailPartViewers/UIxMailPartTextViewer.m (convertChars): do
not cast pointers to unsigned int to avoid problems with big
endian archs.
+59 -5
View File
@@ -21,9 +21,6 @@
* Boston, MA 02111-1307, USA.
*/
#import <NGObjWeb/SoWebDAVValue.h>
#import "SOGoDAVRendererTypes.h"
#import <Foundation/NSArray.h>
#import <Foundation/NSDate.h>
#import <Foundation/NSDictionary.h>
@@ -54,12 +51,14 @@
#import "NSDictionary+Utilities.h"
#import "NSArray+Utilities.h"
#import "NSObject+DAV.h"
#import "NSString+Utilities.h"
#import "SOGoContentObject.h"
#import "SOGoParentFolder.h"
#import "SOGoPermissions.h"
#import "SOGoUser.h"
#import "SOGoWebDAVAclManager.h"
#import "WORequest+SOGo.h"
#import "SOGoGCSFolder.h"
@@ -69,6 +68,62 @@ static BOOL sendFolderAdvisories = NO;
@implementation SOGoGCSFolder
+ (SOGoWebDAVAclManager *) webdavAclManager
{
SOGoWebDAVAclManager *webdavAclManager = nil;
if (!webdavAclManager)
{
webdavAclManager = [SOGoWebDAVAclManager new];
[webdavAclManager registerDAVPermission: davElement (@"read", @"DAV:")
abstract: YES
withEquivalent: SoPerm_WebDAVAccess
asChildOf: davElement (@"all", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"read-current-user-privilege-set", @"DAV:")
abstract: YES
withEquivalent: SoPerm_WebDAVAccess
asChildOf: davElement (@"read", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"write", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"all", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"bind", @"DAV:")
abstract: NO
withEquivalent: SoPerm_AddDocumentsImagesAndFiles
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"unbind", @"DAV:")
abstract: NO
withEquivalent: SoPerm_DeleteObjects
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager
registerDAVPermission: davElement (@"write-properties", @"DAV:")
abstract: YES
withEquivalent: SoPerm_ChangePermissions /* hackish */
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager
registerDAVPermission: davElement (@"write-content", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"admin", @"urn:inverse:params:xml:ns:inverse-dav")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"all", @"DAV:")];
[webdavAclManager
registerDAVPermission: davElement (@"read-acl", @"DAV:")
abstract: YES
withEquivalent: SOGoPerm_ReadAcls
asChildOf: davElement (@"admin", @"urn:inverse:params:xml:ns:inverse-dav")];
[webdavAclManager
registerDAVPermission: davElement (@"write-acl", @"DAV:")
abstract: YES
withEquivalent: SoPerm_ChangePermissions
asChildOf: davElement (@"admin", @"urn:inverse:params:xml:ns:inverse-dav")];
}
return webdavAclManager;
}
+ (void) initialize
{
NSUserDefaults *ud;
@@ -273,8 +328,7 @@ static BOOL sendFolderAdvisories = NO;
}
else
error = [NSException exceptionWithHTTPStatus: 400
reason: [NSString stringWithFormat:
@"Empty string"]];
reason: @"Empty string"];
}
else
error = [NSException exceptionWithHTTPStatus: 403
+44
View File
@@ -32,9 +32,11 @@
#import <GDLContentStore/NSURL+GCS.h>
#import <GDLAccess/EOAdaptorChannel.h>
#import "NSObject+DAV.h"
#import "SOGoGCSFolder.h"
#import "SOGoPermissions.h"
#import "SOGoUser.h"
#import "SOGoWebDAVAclManager.h"
#import "SOGoParentFolder.h"
@@ -48,6 +50,48 @@ static SoSecurityManager *sm = nil;
sm = [SoSecurityManager sharedSecurityManager];
}
+ (SOGoWebDAVAclManager *) webdavAclManager
{
SOGoWebDAVAclManager *webdavAclManager = nil;
if (!webdavAclManager)
{
webdavAclManager = [SOGoWebDAVAclManager new];
[webdavAclManager registerDAVPermission: davElement (@"read", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"all", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"read-current-user-privilege-set", @"DAV:")
abstract: NO
withEquivalent: SoPerm_WebDAVAccess
asChildOf: davElement (@"read", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"write", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"all", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"bind", @"DAV:")
abstract: NO
withEquivalent: SoPerm_AddFolders
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager registerDAVPermission: davElement (@"unbind", @"DAV:")
abstract: NO
withEquivalent: SoPerm_DeleteObjects
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager
registerDAVPermission: davElement (@"write-properties", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"write", @"DAV:")];
[webdavAclManager
registerDAVPermission: davElement (@"write-content", @"DAV:")
abstract: YES
withEquivalent: nil
asChildOf: davElement (@"write", @"DAV:")];
}
return webdavAclManager;
}
- (id) init
{
if ((self = [super init]))