diff --git a/ChangeLog b/ChangeLog
index 713323860..52a54279b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-28 Wolfgang Sourdeau
+
+ * UI/MailPartViewers/UIxMailPartICalViewer.m
+ ([UIxMailPartICalViewer -hasCalendarAccess]): new method that
+ returns whether the current user has access to the calendar
+ module, so that buttons can be hidden.
+
2008-08-27 Wolfgang Sourdeau
* SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart
diff --git a/UI/MailPartViewers/UIxMailPartICalViewer.m b/UI/MailPartViewers/UIxMailPartICalViewer.m
index c485e5eed..6fa55c83e 100644
--- a/UI/MailPartViewers/UIxMailPartICalViewer.m
+++ b/UI/MailPartViewers/UIxMailPartICalViewer.m
@@ -215,29 +215,37 @@
return [folder lookupName: @"personal" inContext: context acquire: NO];
}
+- (BOOL) hasCalendarAccess
+{
+ return [[context activeUser] canAccessModule: @"Calendar"];
+}
+
- (SOGoAppointmentObject *) storedEventObject
{
/* lookup object in the users Calendar */
SOGoAppointmentFolder *calendar;
NSString *filename;
- if (!storedEventObject)
+ if ([self hasCalendarAccess])
{
- calendar = [self calendarFolder];
- if ([calendar isKindOfClass: [NSException class]])
- [self errorWithFormat:@"Did not find Calendar folder: %@", calendar];
- else
+ if (!storedEventObject)
{
- filename = [calendar resourceNameForEventUID:[[self inEvent] uid]];
- if (filename)
+ calendar = [self calendarFolder];
+ if ([calendar isKindOfClass: [NSException class]])
+ [self errorWithFormat:@"Did not find Calendar folder: %@", calendar];
+ else
{
- storedEventObject = [calendar lookupName: filename
- inContext: [self context]
- acquire: NO];
- if ([storedEventObject isKindOfClass: [NSException class]])
- storedEventObject = nil;
- else
- [storedEventObject retain];
+ filename = [calendar resourceNameForEventUID:[[self inEvent] uid]];
+ if (filename)
+ {
+ storedEventObject = [calendar lookupName: filename
+ inContext: [self context]
+ acquire: NO];
+ if ([storedEventObject isKindOfClass: [NSException class]])
+ storedEventObject = nil;
+ else
+ [storedEventObject retain];
+ }
}
}
}
@@ -418,7 +426,8 @@
- (BOOL) canOriginalEventBeUpdated
{
- return ([self hasSenderStatusChanged]
+ return ([self hasCalendarAccess]
+ && [self hasSenderStatusChanged]
&& ([[inEvent sequence] compare: [storedEvent sequence]]
!= NSOrderedAscending));
}
diff --git a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
index 91ba11468..bba016a00 100644
--- a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
+++ b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
@@ -39,24 +39,26 @@
-
-
-
-
-
-
-
-
-
- |
-
-
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
@@ -76,7 +78,7 @@
-
+
@@ -89,8 +91,8 @@
-
-
+
+
Status Update: