Monotone-Parent: 824371ebd82eb64fbd4854a807301e4626264817

Monotone-Revision: 64856d66db3bd10685a7bc471daa3e09652c6f11

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-03-29T17:20:37
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau committed 2007-03-29 17:20:37 +00:00
1 parent 1f7b31046e
commit a21e2d39f1
4 files changed
+90 -1

No files matched your search

+66
View File
@@ -28,15 +28,20 @@
#import <NGObjWeb/WOContext.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/SoSecurityManager.h>
#import <SOGo/AgenorUserManager.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoObject.h>
#import <SOGo/SOGoPermissions.h>
#import "UIxFolderActions.h"
@implementation UIxFolderActions
#warning some of this code could probably be moved in one of the \
clientObject classes...
- (void) _setupContext
{
NSString *clientClass;
@@ -134,4 +139,65 @@
return [self _realActionWithFolderName: nil];
}
- (WOResponse *) canAccessContentAction
{
WOResponse *response;
SoSecurityManager *securityManager;
BOOL result;
securityManager = [SoSecurityManager sharedSecurityManager];
result = (![securityManager validatePermission: SoPerm_AccessContentsInformation
onObject: [self clientObject]
inContext: context]);
response = [context response];
[response setStatus: 200];
[response setHeader: @"text/plain; charset=\"ascii\""
forKey: @"content-type"];
[response appendContentString: (result) ? @"1" : @"0"];
return response;
}
- (WOResponse *) _realFolderActivation: (BOOL) makeActive
{
WOResponse *response;
NSMutableDictionary *folderSubscription, *folderDict;
NSNumber *active;
response = [context response];
[self _setupContext];
active = [NSNumber numberWithBool: makeActive];
if ([owner isEqualToString: login])
[moduleSettings setObject: active forKey: @"activateUserFolder"];
else
{
folderSubscription
= [moduleSettings objectForKey: @"SubscribedFolders"];
if (folderSubscription)
{
folderDict = [folderSubscription objectForKey: subscriptionPointer];
if (folderDict)
[folderDict setObject: active
forKey: @"active"];
}
}
[ud synchronize];
[response setStatus: 204];
return response;
}
- (WOResponse *) activateFolderAction
{
return [self _realFolderActivation: YES];
}
- (WOResponse *) deactivateFolderAction
{
return [self _realFolderActivation: NO];
}
@end