parent
2b6428efd0
commit
9ed1d57ec2
|
@ -545,51 +545,64 @@
|
||||||
[fbInfo removeObjectAtIndex: i];
|
[fbInfo removeObjectAtIndex: i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ([fbInfo count])
|
// Find the attendee associated to the current UID
|
||||||
{
|
for (i = 0; i < [theAttendees count]; i++)
|
||||||
// If we always force the auto-accept if numberOfSimultaneousBookings == 0 (ie., no limit
|
{
|
||||||
// is imposed) or if numberOfSimultaneousBookings is greater than the number of
|
currentAttendee = [theAttendees objectAtIndex: i];
|
||||||
// overlapping events
|
if ([[currentAttendee uid] isEqualToString: currentUID])
|
||||||
if ([user numberOfSimultaneousBookings] == 0 ||
|
break;
|
||||||
[user numberOfSimultaneousBookings] > [fbInfo count])
|
else
|
||||||
|
currentAttendee = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentAttendee)
|
||||||
|
{
|
||||||
|
if ([fbInfo count])
|
||||||
{
|
{
|
||||||
|
// If we always force the auto-accept if numberOfSimultaneousBookings == 0 (ie., no limit
|
||||||
|
// is imposed) or if numberOfSimultaneousBookings is greater than the number of
|
||||||
|
// overlapping events
|
||||||
|
if ([user numberOfSimultaneousBookings] == 0 ||
|
||||||
|
[user numberOfSimultaneousBookings] > [fbInfo count])
|
||||||
|
{
|
||||||
|
[[currentAttendee attributes] removeObjectForKey: @"RSVP"];
|
||||||
|
[currentAttendee setParticipationStatus: iCalPersonPartStatAccepted];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iCalCalendar *calendar;
|
||||||
|
NSDictionary *values;
|
||||||
|
NSString *reason;
|
||||||
|
iCalEvent *event;
|
||||||
|
|
||||||
|
calendar = [iCalCalendar parseSingleFromSource: [[fbInfo objectAtIndex: 0] objectForKey: @"c_content"]];
|
||||||
|
event = [[calendar events] lastObject];
|
||||||
|
|
||||||
|
values = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
|
[NSString stringWithFormat: @"%d", [user numberOfSimultaneousBookings]], @"NumberOfSimultaneousBookings",
|
||||||
|
[user cn], @"Cn",
|
||||||
|
[user systemEmail], @"SystemEmail",
|
||||||
|
([event summary] ? [event summary] : @""), @"EventTitle",
|
||||||
|
[[fbInfo objectAtIndex: 0] objectForKey: @"startDate"], @"StartDate",
|
||||||
|
nil];
|
||||||
|
|
||||||
|
reason = [values keysWithFormat: [self labelForKey: @"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}."]];
|
||||||
|
|
||||||
|
return [NSException exceptionWithHTTPStatus:403
|
||||||
|
reason: reason];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// No conflict, we auto-accept. We do this for resources automatically if no
|
||||||
|
// double-booking is observed. If it's not the desired behavior, just don't
|
||||||
|
// set the resource as one!
|
||||||
[[currentAttendee attributes] removeObjectForKey: @"RSVP"];
|
[[currentAttendee attributes] removeObjectForKey: @"RSVP"];
|
||||||
[currentAttendee setParticipationStatus: iCalPersonPartStatAccepted];
|
[currentAttendee setParticipationStatus: iCalPersonPartStatAccepted];
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
}
|
||||||
iCalCalendar *calendar;
|
|
||||||
NSDictionary *values;
|
|
||||||
NSString *reason;
|
|
||||||
iCalEvent *event;
|
|
||||||
|
|
||||||
calendar = [iCalCalendar parseSingleFromSource: [[fbInfo objectAtIndex: 0] objectForKey: @"c_content"]];
|
|
||||||
event = [[calendar events] lastObject];
|
|
||||||
|
|
||||||
values = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
[NSString stringWithFormat: @"%d", [user numberOfSimultaneousBookings]], @"NumberOfSimultaneousBookings",
|
|
||||||
[user cn], @"Cn",
|
|
||||||
[user systemEmail], @"SystemEmail",
|
|
||||||
([event summary] ? [event summary] : @""), @"EventTitle",
|
|
||||||
[[fbInfo objectAtIndex: 0] objectForKey: @"startDate"], @"StartDate",
|
|
||||||
nil];
|
|
||||||
|
|
||||||
reason = [values keysWithFormat: [self labelForKey: @"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}."]];
|
|
||||||
|
|
||||||
return [NSException exceptionWithHTTPStatus:403
|
|
||||||
reason: reason];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// No conflict, we auto-accept. We do this for resources automatically if no
|
|
||||||
// double-booking is observed. If it's not the desired behavior, just don't
|
|
||||||
// set the resource as one!
|
|
||||||
[[currentAttendee attributes] removeObjectForKey: @"RSVP"];
|
|
||||||
[currentAttendee setParticipationStatus: iCalPersonPartStatAccepted];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil;
|
return nil;
|
||||||
|
|
Loading…
Reference in New Issue