*/
#import <Foundation/NSString.h>
-
+#import <Foundation/NSUserDefaults.h>
+
+#import <NGObjWeb/NSException+HTTP.h>
+#import <NGObjWeb/SoSecurityManager.h>
+#import <NGObjWeb/WOApplication.h>
+#import <NGObjWeb/WOContext+SoObjects.h>
+#import <NGExtensions/NSObject+Logs.h>
+#import <NGExtensions/NGHashMap.h>
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalPerson.h>
#import <NGCards/iCalRepeatableEntityObject.h>
-#import <NGMime/NGMime.h>
-#import <NGMail/NGMail.h>
-#import <NGMail/NGSendMail.h>
+#import <NGMime/NGMimeBodyPart.h>
+#import <NGMime/NGMimeMultipartBody.h>
+#import <NGMail/NGMimeMessage.h>
#import <SoObjects/SOGo/LDAPUserManager.h>
+#import <SoObjects/SOGo/NSCalendarDate+SOGo.h>
+#import <SoObjects/SOGo/SOGoMailer.h>
#import <SoObjects/SOGo/SOGoPermissions.h>
#import <SoObjects/SOGo/SOGoUser.h>
#import <SoObjects/Appointments/SOGoAppointmentFolder.h>
-#import "common.h"
-
#import "SOGoAptMailNotification.h"
#import "iCalEntityObject+SOGo.h"
#import "SOGoCalendarComponent.h"
{
calendar = nil;
calContent = nil;
- isNew = NO;
}
return self;
- (NSString *) contentAsString
{
- NSString *uid;
iCalCalendar *tmpCalendar;
iCalRepeatableEntityObject *tmpComponent;
- NSArray *roles;
+// NSArray *roles;
+// NSString *uid;
+ SoSecurityManager *sm;
if (!calContent)
{
- uid = [[context activeUser] login];
- roles = [self aclsForUser: uid];
- if ([roles containsObject: SOGoCalendarRole_Organizer]
- || [roles containsObject: SOGoCalendarRole_Participant]
- || [roles containsObject: SOGoCalendarRole_ComponentViewer])
- {
- calContent = content;
- [calContent retain];
- }
- else if ([roles containsObject: SOGoCalendarRole_ComponentDAndTViewer])
+// uid = [[context activeUser] login];
+// roles = [self aclsForUser: uid];
+// if ([roles containsObject: SOGoCalendarRole_Organizer]
+// || [roles containsObject: SOGoCalendarRole_Participant]
+// || [roles containsObject: SOGoCalendarRole_ComponentViewer])
+// calContent = content;
+// else if ([roles containsObject: SOGoCalendarRole_ComponentDAndTViewer])
+// {
+// tmpCalendar = [[self calendar: NO] copy];
+// tmpComponent = (iCalRepeatableEntityObject *)
+// [tmpCalendar firstChildWithTag: [self componentTag]];
+// [self _filterComponent: tmpComponent];
+// calContent = [tmpCalendar versitString];
+// [tmpCalendar release];
+// }
+// else
+// calContent = nil;
+
+ sm = [SoSecurityManager sharedSecurityManager];
+ if (![sm validatePermission: SOGoCalendarPerm_ViewAllComponent
+ onObject: self inContext: context])
+ calContent = content;
+ else if (![sm validatePermission: SOGoCalendarPerm_ViewDAndT
+ onObject: self inContext: context])
{
tmpCalendar = [[self calendar: NO] copy];
tmpComponent = (iCalRepeatableEntityObject *)
newComponent = [[calendar classForTag: componentTag]
groupWithTag: componentTag];
[calendar addChild: newComponent];
- isNew = YES;
}
}
if (calendar)
firstChildWithTag: [self componentTag]];
}
-- (BOOL) isNew
-{
- return isNew;
-}
-
/* raw saving */
- (NSException *) primarySaveContentString: (NSString *) _iCalString
NSString *pageName;
iCalPerson *organizer;
NSString *cn, *email, *sender, *iCalString;
- NGSendMail *sendmail;
WOApplication *app;
unsigned i, count;
iCalPerson *attendee;
NSString *recipient;
SOGoAptMailNotification *p;
- NSString *subject, *text, *header;
+ NSString *mailDate, *subject, *text, *header;
NGMutableHashMap *headerMap;
NGMimeMessage *msg;
NGMimeBodyPart *bodyPart;
/* generate iCalString once */
iCalString = [[_newObject parent] versitString];
- /* get sendmail object */
- sendmail = [NGSendMail sharedSendMail];
-
/* get WOApplication instance */
app = [WOApplication application];
[headerMap setObject: @"multipart/mixed" forKey: @"content-type"];
[headerMap setObject: sender forKey: @"From"];
[headerMap setObject: recipient forKey: @"To"];
- [headerMap setObject: [NSCalendarDate date] forKey: @"date"];
+ mailDate = [[NSCalendarDate date] rfc822DateString];
+ [headerMap setObject: mailDate forKey: @"date"];
[headerMap setObject: subject forKey: @"Subject"];
msg = [NGMimeMessage messageWithHeader: headerMap];
[body release];
/* send the damn thing */
- [sendmail sendMimePart: msg
- toRecipients: [NSArray arrayWithObject: email]
- sender: [organizer rfc822Email]];
+ [[SOGoMailer sharedMailer]
+ sendMimePart: msg
+ toRecipients: [NSArray arrayWithObject: email]
+ sender: [organizer rfc822Email]];
}
}
}
[roles addObject: SOGoCalendarRole_Organizer];
}
- NSLog (@"all roles: %@" , roles);
-// }
-
return roles;
}