From 3aa992e5181986b87b8ea288b46bdd146930be76 Mon Sep 17 00:00:00 2001 From: Christoph Polcin Date: Wed, 15 Jan 2014 10:44:35 +0100 Subject: [PATCH] Find collections if necessary --- radicale/__init__.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/radicale/__init__.py b/radicale/__init__.py index 329f84e..a036b4e 100644 --- a/radicale/__init__.py +++ b/radicale/__init__.py @@ -264,9 +264,6 @@ class Application(object): path = environ["PATH_INFO"] - # Find collection(s) - items = ical.Collection.from_path(path, environ.get("HTTP_DEPTH", "0")) - # Get function corresponding to method function = getattr(self, environ["REQUEST_METHOD"].lower()) @@ -280,12 +277,17 @@ class Application(object): else: user = password = None - read_allowed_items, write_allowed_items = \ - self.collect_allowed_items(items, user) - is_authenticated = auth.is_authenticated(user, password) is_valid_user = is_authenticated or not user + if is_valid_user: + items = ical.Collection.from_path(path, + environ.get("HTTP_DEPTH", "0")) + read_allowed_items, write_allowed_items = \ + self.collect_allowed_items(items, user) + else: + read_allowed_items, write_allowed_items = None, None + if is_valid_user and ( (read_allowed_items or write_allowed_items) or (is_authenticated and function == self.propfind) or