Revision: 1447 http://trac.macosforge.org/projects/calendarserver/changeset/1447 Author: cdaboo@apple.com Date: 2007-04-04 10:55:18 -0700 (Wed, 04 Apr 2007) Log Message: ----------- Fix some bare except:'s that do not re-raise - make sure that catch explicit exceptions. A bug in calendar query logic was uncovered by this and also fixed. Modified Paths: -------------- CalendarServer/trunk/twistedcaldav/ical.py CalendarServer/trunk/twistedcaldav/itip.py CalendarServer/trunk/twistedcaldav/method/mkcalendar.py CalendarServer/trunk/twistedcaldav/method/report_common.py CalendarServer/trunk/twistedcaldav/method/report_multiget.py CalendarServer/trunk/twistedcaldav/query/calendarquery.py CalendarServer/trunk/twistedcaldav/schedule.py CalendarServer/trunk/twistedcaldav/static.py Modified: CalendarServer/trunk/twistedcaldav/ical.py =================================================================== --- CalendarServer/trunk/twistedcaldav/ical.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/ical.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -851,7 +851,7 @@ method = self.propertyValue("METHOD") if method not in ("PUBLISH", "REQUEST", "REPLY", "ADD", "CANCEL", "REFRESH", "COUNTER", "DECLINECOUNTER"): return False - except: + except ValueError: return False return True @@ -882,7 +882,7 @@ if len([c for c in self.subcomponents()]) != 1: return False - except: + except ValueError: return False return True @@ -903,7 +903,7 @@ try: # Find the primary subcomponent return self.propertyValue("ORGANIZER") - except: + except ValueError: pass return None @@ -924,7 +924,7 @@ try: # Find the primary subcomponent return self.getProperty("ORGANIZER") - except: + except ValueError: pass return None @@ -943,11 +943,8 @@ if component.name() != "VTIMEZONE": return component.getAttendees() else: - try: - # Find the property values - return [p.value() for p in self.properties("ATTENDEE")] - except: - pass + # Find the property values + return [p.value() for p in self.properties("ATTENDEE")] return None @@ -978,13 +975,10 @@ if component.name() != "VTIMEZONE": return component.getAttendeeProperty(match) else: - try: - # Find the primary subcomponent - for p in self.properties("ATTENDEE"): - if _normalizeCUAddress(p.value()) in test: - return p - except: - pass + # Find the primary subcomponent + for p in self.properties("ATTENDEE"): + if _normalizeCUAddress(p.value()) in test: + return p return None @@ -1004,7 +998,7 @@ try: # Find the primary subcomponent return self.propertyValue("X-CALENDARSERVER-MASK-UID") - except: + except ValueError: pass return None Modified: CalendarServer/trunk/twistedcaldav/itip.py =================================================================== --- CalendarServer/trunk/twistedcaldav/itip.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/itip.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -43,6 +43,8 @@ from twisted.web2.dav.method.report import NumberOfMatchesWithinLimits from twisted.web2.dav.util import joinURL from twisted.web2.dav.fileop import delete +from twisted.web2.dav.resource import AccessDeniedError + from twistedcaldav import caldavxml from twistedcaldav.ical import Property, iCalendarProductID from twistedcaldav.method import report_common @@ -561,7 +563,7 @@ d = waitForDeferred(inbox.checkPrivileges(request, (caldavxml.Schedule(),), principal=davxml.Principal(davxml.HRef.fromString(principal.principalURL())))) yield d d.getResult() - except: + except AccessDeniedError: logging.info("[ITIP]: could not send reply as %s does not have CALDAV:schedule permission on %s Inbox." % (principal.principalURL(), organizer)) yield None return @@ -682,7 +684,7 @@ return False if calendar.mainType() not in ("VEVENT"): return False - except: + except ValueError: return False return True @@ -711,7 +713,7 @@ # Remove the one we want to ignore if ignore is not None: result = [name for name in result if name != ignore.fp.basename()] - except: + except ValueError: return [] return result @@ -741,7 +743,7 @@ # Remove the one we want to ignore if ignore is not None: names = [name for name in names if name != ignore.fp.basename()] - except: + except ValueError: return [] # Now get info for each name @@ -767,7 +769,7 @@ dtstamp = comp.propertyValue("DTSTAMP") rid = comp.propertyValue("RECURRENCE-ID") - except: + except ValueError: return (name, None, None, None, None) return (name, uid, seq, dtstamp, rid) Modified: CalendarServer/trunk/twistedcaldav/method/mkcalendar.py =================================================================== --- CalendarServer/trunk/twistedcaldav/method/mkcalendar.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/method/mkcalendar.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -106,7 +106,7 @@ p = waitForDeferred(self.writeProperty(property, request)) yield p p.getResult() - except: + except HTTPError: errors.add(Failure(), property) got_an_error = True else: Modified: CalendarServer/trunk/twistedcaldav/method/report_common.py =================================================================== --- CalendarServer/trunk/twistedcaldav/method/report_common.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/method/report_common.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -38,6 +38,8 @@ from twisted.web2.dav.method.propfind import propertyName from twisted.web2.dav.method.report import NumberOfMatchesWithinLimits from twisted.web2.dav.method.report import max_number_of_matches +from twisted.web2.dav.resource import AccessDeniedError +from twisted.web2.http import HTTPError from twistedcaldav import caldavxml from twistedcaldav.caldavxml import caldav_namespace @@ -71,7 +73,7 @@ d = waitForDeferred(resource.checkPrivileges(request, privileges)) yield d d.getResult() - except: + except AccessDeniedError: yield None return @@ -246,7 +248,7 @@ yield prop prop = prop.getResult() properties_by_status[responsecode.OK].append(prop) - except: + except HTTPError: f = Failure() log.err("Error reading property %r for resource %s: %s" % (qname, request.uri, f.value)) @@ -281,7 +283,7 @@ d = waitForDeferred(calresource.checkPrivileges(request, (caldavxml.ReadFreeBusy(),))) yield d d.getResult() - except: + except AccessDeniedError: yield matchtotal return @@ -332,7 +334,7 @@ d = waitForDeferred(child.checkPrivileges(request, (caldavxml.ReadFreeBusy(),), inherited_aces=filteredaces)) yield d d.getResult() - except: + except AccessDeniedError: continue calendar = calresource.iCalendar(name) Modified: CalendarServer/trunk/twistedcaldav/method/report_multiget.py =================================================================== --- CalendarServer/trunk/twistedcaldav/method/report_multiget.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/method/report_multiget.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -28,6 +28,7 @@ from twisted.web2.dav import davxml from twisted.web2.dav.element.base import dav_namespace from twisted.web2.dav.http import ErrorResponse, MultiStatusResponse +from twisted.web2.dav.resource import AccessDeniedError from twisted.web2.dav.util import joinURL from twisted.web2.http import HTTPError, StatusResponse @@ -218,7 +219,7 @@ d = waitForDeferred(parent.checkPrivileges(request, (davxml.Read(),))) yield d d.getResult() - except: + except AccessDeniedError: responses.append(davxml.StatusResponse(href, davxml.Status.fromResponseCode(responsecode.NOT_ALLOWED))) continue @@ -258,7 +259,7 @@ d = waitForDeferred(child.checkPrivileges(request, (davxml.Read(),), inherited_aces=filteredaces)) yield d d.getResult() - except: + except AccessDeniedError: responses.append(davxml.StatusResponse(href, davxml.Status.fromResponseCode(responsecode.NOT_ALLOWED))) continue Modified: CalendarServer/trunk/twistedcaldav/query/calendarquery.py =================================================================== --- CalendarServer/trunk/twistedcaldav/query/calendarquery.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/query/calendarquery.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -123,7 +123,7 @@ compsExpression = None # Now build compound expression - if ((propsExpression is not None) or (compsExpression is not None)): + if ((propsExpression is not None) and (compsExpression is not None)): expressions.append(expression.orExpression([propsExpression, compsExpression])) elif propsExpression is not None: expressions.append(propsExpression) @@ -218,7 +218,7 @@ expression = calendarquery(filter) sql = sqlgenerator.sqlgenerator(expression) return sql.generate() - except: + except ValueError: return None Modified: CalendarServer/trunk/twistedcaldav/schedule.py =================================================================== --- CalendarServer/trunk/twistedcaldav/schedule.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/schedule.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -34,6 +34,7 @@ from twisted.web2.http_headers import MimeType from twisted.web2.dav import davxml from twisted.web2.dav.http import ErrorResponse, errorForFailure, messageForFailure, statusForFailure +from twisted.web2.dav.resource import AccessDeniedError from twisted.web2.dav.util import joinURL, parentForURL from twistedcaldav import caldavxml @@ -333,7 +334,7 @@ d = waitForDeferred(inbox.checkPrivileges(request, (caldavxml.Schedule(),), principal=davxml.Principal(davxml.HRef(oprincipal.principalURL())))) yield d d.getResult() - except: + except AccessDeniedError: log.err("Could not access Inbox for recipient: %s" % (recipient,)) err = HTTPError(ErrorResponse(responsecode.NOT_FOUND, (caldav_namespace, "recipient-permisions"))) responses.add(recipient, Failure(exc_value=err), reqstatus="3.8;No authority") Modified: CalendarServer/trunk/twistedcaldav/static.py =================================================================== --- CalendarServer/trunk/twistedcaldav/static.py 2007-04-04 14:46:26 UTC (rev 1446) +++ CalendarServer/trunk/twistedcaldav/static.py 2007-04-04 17:55:18 UTC (rev 1447) @@ -48,6 +48,7 @@ from twisted.web2.dav.http import ErrorResponse from twisted.web2.dav.idav import IDAVResource from twisted.web2.dav.method import put_common as put_common_base +from twisted.web2.dav.resource import AccessDeniedError from twisted.web2.dav.resource import davPrivilegeSet from twisted.web2.dav.util import parentForURL, bindMethods @@ -189,7 +190,7 @@ d = waitForDeferred(child.checkPrivileges(request, (davxml.Read(),), inherited_aces=filteredaces)) yield d d.getResult() - except: + except AccessDeniedError: continue subcalendar = self.iCalendar(name) assert subcalendar.name() == "VCALENDAR"
participants (1)
-
source_changes@macosforge.org