diff --git a/UI/Scheduler/UIxCalInlineAptView.m b/UI/Scheduler/UIxCalInlineAptView.m index 994a1f7c7..039332094 100644 --- a/UI/Scheduler/UIxCalInlineAptView.m +++ b/UI/Scheduler/UIxCalInlineAptView.m @@ -25,6 +25,7 @@ #import #import +#import #import @interface UIxCalInlineAptView : WOComponent @@ -273,9 +274,47 @@ referenceDate: [self referenceDate]]; } -- (BOOL) isConfidential +- (BOOL) _userIsInTheCard: (NSString *) email { - return ([[appointment objectForKey: @"classification"] intValue] == iCalAccessConfidential); + NSString *orgMailString, *partMailsString; + NSArray *partMails; + BOOL userIsInTheCard; + + orgMailString = [appointment objectForKey: @"orgmail"]; + if ([orgMailString isNotNull] && [orgMailString isEqualToString: email]) + userIsInTheCard = YES; + else + { + partMailsString = [appointment objectForKey: @"partmails"]; + if ([partMailsString isNotNull]) + { + partMails = [partMailsString componentsSeparatedByString: @"\n"]; + userIsInTheCard = [partMails containsObject: email]; + } + else + userIsInTheCard = NO; + } + + return userIsInTheCard; +} + +- (BOOL) titleShouldBeHidden +{ + BOOL shouldBeHidden; + SOGoUser *user; + SOGoAuthenticator *sAuth; + + sAuth = [SOGoAuthenticator sharedSOGoAuthenticator]; + user = [sAuth userInContext: context]; + + if ([[appointment objectForKey: @"owner"] isEqualToString: [user login]] + || ([[appointment objectForKey: @"classification"] intValue] + != iCalAccessConfidential)) + shouldBeHidden = NO; + else + shouldBeHidden = ![self _userIsInTheCard: [user email]]; + + return shouldBeHidden; } @end diff --git a/UI/Templates/SchedulerUI/UIxCalInlineAptView.wox b/UI/Templates/SchedulerUI/UIxCalInlineAptView.wox index 10aded341..929a66ca5 100644 --- a/UI/Templates/SchedulerUI/UIxCalInlineAptView.wox +++ b/UI/Templates/SchedulerUI/UIxCalInlineAptView.wox @@ -26,7 +26,7 @@ >