add new option rights/permit_overwrite_collection

This commit is contained in:
Peter Bieringer 2024-09-29 18:15:42 +02:00
parent bfe0ccc463
commit 973b26b2e9
4 changed files with 10 additions and 0 deletions

2
config
View file

@ -115,6 +115,8 @@
# Permit delete of a collection (global) # Permit delete of a collection (global)
#permit_delete_collection = True #permit_delete_collection = True
# Permit overwrite of a collection (global)
#permit_overwrite_collection = False
[storage] [storage]

View file

@ -70,6 +70,7 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
_auth_realm: str _auth_realm: str
_extra_headers: Mapping[str, str] _extra_headers: Mapping[str, str]
_permit_delete_collection: bool _permit_delete_collection: bool
_permit_overwrite_collection: bool
def __init__(self, configuration: config.Configuration) -> None: def __init__(self, configuration: config.Configuration) -> None:
"""Initialize Application. """Initialize Application.
@ -91,6 +92,8 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
self._auth_realm = configuration.get("auth", "realm") self._auth_realm = configuration.get("auth", "realm")
self._permit_delete_collection = configuration.get("rights", "permit_delete_collection") self._permit_delete_collection = configuration.get("rights", "permit_delete_collection")
logger.info("permit delete of collection: %s", self._permit_delete_collection) logger.info("permit delete of collection: %s", self._permit_delete_collection)
self._permit_overwrite_collection = configuration.get("rights", "permit_overwrite_collection")
logger.info("permit overwrite of collection: %s", self._permit_overwrite_collection)
self._extra_headers = dict() self._extra_headers = dict()
for key in self.configuration.options("headers"): for key in self.configuration.options("headers"):
self._extra_headers[key] = configuration.get("headers", key) self._extra_headers[key] = configuration.get("headers", key)

View file

@ -40,6 +40,7 @@ class ApplicationBase:
_web: web.BaseWeb _web: web.BaseWeb
_encoding: str _encoding: str
_permit_delete_collection: bool _permit_delete_collection: bool
_permit_overwrite_collection: bool
_hook: hook.BaseHook _hook: hook.BaseHook
def __init__(self, configuration: config.Configuration) -> None: def __init__(self, configuration: config.Configuration) -> None:

View file

@ -245,6 +245,10 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDict([
"value": "True", "value": "True",
"help": "permit delete of a collection", "help": "permit delete of a collection",
"type": bool}), "type": bool}),
("permit_overwrite_collection", {
"value": "False",
"help": "permit overwrite of a collection",
"type": bool}),
("file", { ("file", {
"value": "/etc/radicale/rights", "value": "/etc/radicale/rights",
"help": "file for rights management from_file", "help": "file for rights management from_file",