Handle exceptions when looking for rights in a file

This commit is contained in:
Guillaume DOTT 2012-12-11 15:03:29 +01:00
parent 33073147bc
commit 5a3f0e4d97

View File

@ -50,9 +50,9 @@ from radicale.rights import owner_only
# Manage Python2/3 different modules # Manage Python2/3 different modules
# pylint: disable=F0401 # pylint: disable=F0401
try: try:
from configparser import RawConfigParser as ConfigParser from configparser import RawConfigParser as ConfigParser, NoSectionError, NoOptionError
except ImportError: except ImportError:
from ConfigParser import RawConfigParser as ConfigParser from ConfigParser import RawConfigParser as ConfigParser, NoSectionError, NoOptionError
# pylint: enable=F0401 # pylint: enable=F0401
@ -68,13 +68,20 @@ else:
def read_authorized(user, collection): def read_authorized(user, collection):
"""Check if the user is allowed to read the collection.""" """Check if the user is allowed to read the collection."""
return ( if owner_only.read_authorized(user, collection):
owner_only.read_authorized(user, collection) or return True
"r" in RIGHTS.get(collection.url.rstrip("/") or "/", user)) else:
try:
return "r" in RIGHTS.get(collection.url.rstrip("/") or "/", user)
except (NoSectionError, NoOptionError):
return False
def write_authorized(user, collection): def write_authorized(user, collection):
"""Check if the user is allowed to write the collection.""" """Check if the user is allowed to write the collection."""
return ( if owner_only.read_authorized(user, collection):
owner_only.write_authorized(user, collection) or return True
"w" in RIGHTS.get(collection.url.rstrip("/") or "/", user)) else:
try:
return "w" in RIGHTS.get(collection.url.rstrip("/") or "/", user)
except (NoSectionError, NoOptionError):
return False