#import <NGObjWeb/WOResponse.h>
#import <SoObjects/SOGo/LDAPUserManager.h>
#import <SoObjects/SOGo/SOGoObject.h>
+#import <SoObjects/SOGo/SOGoPermissions.h>
#import "UIxObjectActions.h"
{
WOResponse *response;
WORequest *request;
- NSString *uid, *email;
+ NSString *uid;
unsigned int code;
LDAPUserManager *um;
SOGoObject *clientObject;
if ([uid length] > 0)
{
um = [LDAPUserManager sharedUserManager];
- email = [um getEmailForUID: uid];
- if ([email length] > 0)
+ if ([um contactInfosForUserWithUIDorEmail: uid])
{
- clientObject = [self clientObject];
- [clientObject setRoles: [clientObject defaultAclRoles]
- forUser: uid];
+ clientObject = [self clientObject];
+ [clientObject setRoles: [clientObject aclsForUser: uid]
+ forUser: uid];
+ [clientObject sendACLAdditionAdvisoryToUser: uid];
+ code = 204;
+ }
+ }
+
+ response = [context response];
+ [response setStatus: code];
+
+ return response;
+}
+
+- (WOResponse *) removeUserFromAclsAction
+{
+ WOResponse *response;
+ WORequest *request;
+ NSString *uid;
+ unsigned int code;
+ LDAPUserManager *um;
+ SOGoObject *co;
+
+ code = 403;
+ request = [context request];
+ uid = [request formValueForKey: @"uid"];
+ if ([uid length] > 0)
+ {
+ um = [LDAPUserManager sharedUserManager];
+ if ([um contactInfosForUserWithUIDorEmail: uid])
+ {
+ co = [self clientObject];
+ [co removeAclsForUsers: [NSArray arrayWithObject: uid]];
+ [co sendACLRemovalAdvisoryToUser: uid];
code = 204;
}
}