diff --git a/ChangeLog b/ChangeLog index 832b7b060..f48afafb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-02-16 Wolfgang Sourdeau + + * SoObjects/Appointments/SOGoCalendarComponent.m + ([SOGoCalendarComponent -rolesOfUser:logininContext:context]): + returns the roles of the user on the container object if the event + is uncreated. + 2007-02-15 Wolfgang Sourdeau * UI/MailPartViewers/UIxMailRenderingContext.m: returns the diff --git a/SoObjects/Appointments/SOGoCalendarComponent.m b/SoObjects/Appointments/SOGoCalendarComponent.m index 6ebce383b..c5e6e3111 100644 --- a/SoObjects/Appointments/SOGoCalendarComponent.m +++ b/SoObjects/Appointments/SOGoCalendarComponent.m @@ -31,6 +31,7 @@ #import #import +#import #import "common.h" @@ -294,27 +295,40 @@ static BOOL sendEMailNotifications = NO; } } -- (NSString *) roleOfUser: (NSString *) login +- (NSArray *) rolesOfUser: (NSString *) login inContext: (WOContext *) context { AgenorUserManager *um; iCalRepeatableEntityObject *component; - NSString *role, *email; + NSMutableArray *sogoRoles; + NSString *email; + SOGoUser *user; + + sogoRoles = [NSMutableArray new]; + [sogoRoles autorelease]; um = [AgenorUserManager sharedUserManager]; email = [um getEmailForUID: login]; component = [self component]; - if ([component isOrganizer: email]) - role = SOGoRole_Organizer; - else if ([component isParticipant: email]) - role = SOGoRole_Participant; - else if ([[[self container] ownerInContext: nil] isEqualToString: login]) - role = SoRole_Owner; + if (component) + { + if ([component isOrganizer: email]) + [sogoRoles addObject: SOGoRole_Organizer]; + else if ([component isParticipant: email]) + [sogoRoles addObject: SOGoRole_Participant]; + else if ([[container ownerInContext: nil] isEqualToString: login]) + [sogoRoles addObject: SoRole_Owner]; + } else - role = nil; + { + user = [[SOGoUser alloc] initWithLogin: login roles: nil]; + [sogoRoles addObjectsFromArray: [user rolesForObject: container + inContext: context]]; + [user release]; + } - return role; + return sogoRoles; } @end