[CalendarServer-changes] [5686] CalendarServer/trunk/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Fri Jun 4 12:56:51 PDT 2010
Revision: 5686
http://trac.macosforge.org/projects/calendarserver/changeset/5686
Author: cdaboo at apple.com
Date: 2010-06-04 12:56:49 -0700 (Fri, 04 Jun 2010)
Log Message:
-----------
Limit on freebusy query attendees - default is 30.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/scheduling/scheduler.py
CalendarServer/trunk/twistedcaldav/stdconfig.py
Modified: CalendarServer/trunk/twistedcaldav/scheduling/scheduler.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/scheduling/scheduler.py 2010-06-04 19:50:52 UTC (rev 5685)
+++ CalendarServer/trunk/twistedcaldav/scheduling/scheduler.py 2010-06-04 19:56:49 UTC (rev 5686)
@@ -188,9 +188,12 @@
def loadRecipientsFromCalendarData(self):
# Get the ATTENDEEs
- attendees = set()
+ attendees = list()
+ unique_set = set()
for attendee, _ignore in self.calendar.getAttendeesByInstance():
- attendees.add(attendee)
+ if attendee not in unique_set:
+ attendees.append(attendee)
+ unique_set.add(attendee)
if not attendees:
log.err("%s request must have at least one Recipient" % (self.method,))
@@ -391,8 +394,14 @@
partitioned_recipients = []
remote_recipients = []
imip_recipients = []
- for recipient in self.recipients:
+ for ctr, recipient in enumerate(self.recipients):
+ # Check for freebusy limit
+ if freebusy and ctr >= config.Scheduling.Options.LimitFreeBusyAttendees:
+ err = HTTPError(ErrorResponse(responsecode.NOT_FOUND, (caldav_namespace, "recipient-limit")))
+ responses.add(recipient.cuaddr, Failure(exc_value=err), reqstatus=iTIPRequestStatus.NO_USER_SUPPORT)
+ continue
+
if self.fakeTheResult:
responses.add(recipient.cuaddr, responsecode.OK, reqstatus=iTIPRequestStatus.SUCCESS if freebusy else iTIPRequestStatus.MESSAGE_DELIVERED)
@@ -411,7 +420,7 @@
else:
err = HTTPError(ErrorResponse(responsecode.NOT_FOUND, (caldav_namespace, "recipient-exists")))
responses.add(recipient.cuaddr, Failure(exc_value=err), reqstatus=iTIPRequestStatus.INVALID_CALENDAR_USER)
-
+
# Now process local recipients
if caldav_recipients:
yield self.generateLocalSchedulingResponses(caldav_recipients, responses, freebusy)
Modified: CalendarServer/trunk/twistedcaldav/stdconfig.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/stdconfig.py 2010-06-04 19:50:52 UTC (rev 5685)
+++ CalendarServer/trunk/twistedcaldav/stdconfig.py 2010-06-04 19:56:49 UTC (rev 5686)
@@ -420,6 +420,7 @@
"AllowGroupAsOrganizer" : False, # Allow groups to be Organizers
"AllowLocationAsOrganizer" : False, # Allow locations to be Organizers
"AllowResourceAsOrganizer" : False, # Allow resources to be Organizers
+ "LimitFreeBusyAttendees" : 30, # Maximum number of attendees to request freebusy for
}
},
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100604/798dca9f/attachment.html>
More information about the calendarserver-changes
mailing list