Revision: 1562 http://trac.macosforge.org/projects/calendarserver/changeset/1562 Author: cdaboo@apple.com Date: 2007-05-23 12:34:32 -0700 (Wed, 23 May 2007) Log Message: ----------- Mask out ORGANIZER-less events if the requester is the same as the responder. Modified Paths: -------------- CalendarServer/trunk/twistedcaldav/method/report_common.py CalendarServer/trunk/twistedcaldav/schedule.py Modified: CalendarServer/trunk/twistedcaldav/method/report_common.py =================================================================== --- CalendarServer/trunk/twistedcaldav/method/report_common.py 2007-05-23 19:29:00 UTC (rev 1561) +++ CalendarServer/trunk/twistedcaldav/method/report_common.py 2007-05-23 19:34:32 UTC (rev 1562) @@ -263,7 +263,8 @@ _namedPropertiesForResource = deferredGenerator(_namedPropertiesForResource) -def generateFreeBusyInfo(request, calresource, fbinfo, timerange, matchtotal, excludeuid=None, organizer=None): +def generateFreeBusyInfo(request, calresource, fbinfo, timerange, matchtotal, + excludeuid=None, organizer=None, same_calendar_user=False): """ Run a free busy report on the specified calendar collection accumulating the free busy info for later processing. @@ -276,6 +277,8 @@ UID from contributing to free-busy. @param organizer: a C{str} containing the value of the ORGANIZER proeprty in the VFREEBUSY request. This is used in conjunction with the UID value to process exclusions. + @param same_calendar_user: a C{bool} indicating whether the calendar user requesting tyhe free-busy information + is the same as the calendar user being targeted. """ # First check the privilege on this collection @@ -342,9 +345,14 @@ # Ignore ones of this UID if excludeuid: - # Check that ORGANIZER's match (security requirement) and UIDs match - if (excludeuid == uid) and ((organizer is None) or (organizer == calendar.getOrganizer())): - continue + # See if we have a UID match + if (excludeuid == uid): + # Check that ORGANIZER's match (security requirement) + if (organizer is None) or (organizer == calendar.getOrganizer()): + continue + # Check for no ORGANIZER and check by same calendar user + elif (calendar.getOrganizer() is None) and same_calendar_user: + continue if filter.match(calendar): # Check size of results is within limit Modified: CalendarServer/trunk/twistedcaldav/schedule.py =================================================================== --- CalendarServer/trunk/twistedcaldav/schedule.py 2007-05-23 19:29:00 UTC (rev 1561) +++ CalendarServer/trunk/twistedcaldav/schedule.py 2007-05-23 19:34:32 UTC (rev 1562) @@ -402,6 +402,10 @@ availability = availability.calendar() report_common.processAvailabilityFreeBusy(availability, fbinfo, timerange) + # Check to see if the recipient is the same calendar user as the organizer. + # Needed for masked UID stuff. + same_calendar_user = oprincipal.principalURL() == principal.principalURL() + # Now process free-busy set calendars matchtotal = 0 for calURL in fbset: @@ -420,7 +424,8 @@ timerange, matchtotal, excludeuid=excludeuid, - organizer=organizer)) + organizer=organizer, + same_calendar_user=same_calendar_user)) yield matchtotal matchtotal = matchtotal.getResult()
participants (1)
-
source_changes@macosforge.org