]> err.no Git - scalable-opengroupware.org/blobdiff - UI/Common/UIxObjectActions.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1128 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / Common / UIxObjectActions.m
index 277d1ac66a0f2f392dc024936ca5424829e31c44..fd9c3d3cb3346039bf62db487254ffcdf47ab5dc 100644 (file)
@@ -27,6 +27,7 @@
 #import <NGObjWeb/WOResponse.h>
 #import <SoObjects/SOGo/LDAPUserManager.h>
 #import <SoObjects/SOGo/SOGoObject.h>
+#import <SoObjects/SOGo/SOGoPermissions.h>
 
 #import "UIxObjectActions.h"
 
@@ -36,7 +37,7 @@
 {
   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;
         }
     }