]> err.no Git - scalable-opengroupware.org/blobdiff - SoObjects/Appointments/SOGoCalendarComponent.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1292 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / SoObjects / Appointments / SOGoCalendarComponent.m
index 4236a6204800c88246fa6525ea54bdda4fbce95e..8411b79415932bcb8ed8ac70cd108ef2e7da1478 100644 (file)
@@ -27,6 +27,7 @@
 #import <NGObjWeb/SoSecurityManager.h>
 #import <NGObjWeb/WOApplication.h>
 #import <NGObjWeb/WOContext+SoObjects.h>
+#import <NGObjWeb/WORequest+So.h>
 #import <NGExtensions/NSObject+Logs.h>
 #import <NGExtensions/NGHashMap.h>
 #import <NGCards/iCalCalendar.h>
@@ -142,6 +143,18 @@ static BOOL sendEMailNotifications = NO;
   return iCalString;
 }
 
+- (NSString *) contentAsString
+{
+  NSString *secureContent;
+
+  if ([[context request] isSoWebDAVRequest])
+    secureContent = [self secureContentAsString];
+  else
+    secureContent = [super contentAsString];
+
+  return secureContent;
+}
+
 - (iCalCalendar *) calendar: (BOOL) create secure: (BOOL) secure
 {
   NSString *componentTag;
@@ -559,6 +572,7 @@ static BOOL sendEMailNotifications = NO;
   NSArray *superAcls;
   iCalRepeatableEntityObject *component;
   NSString *accessRole, *ownerRole;
+  SOGoUser *aclUser;
 
   roles = [NSMutableArray array];
   superAcls = [super aclsForUser: uid];
@@ -573,6 +587,11 @@ static BOOL sendEMailNotifications = NO;
     {
       if (component)
        {
+         aclUser = [SOGoUser userWithLogin: uid roles: nil];
+         if ([component userIsOrganizer: aclUser])
+           [roles addObject: SOGoCalendarRole_Organizer];
+         else if ([component userIsParticipant: aclUser])
+           [roles addObject: SOGoCalendarRole_Participant];
          accessRole = [container roleForComponentsWithAccessClass:
                                    [component symbolicAccessClass]
                                  forUser: uid];