1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-09-12 20:30:57 +00:00

Ability to create predefined calendar or(and) addressbook for new user

This commit is contained in:
IM 2024-04-22 12:23:24 +03:00
parent 7340ddc9d2
commit f7e01d55ed
4 changed files with 60 additions and 2 deletions

View file

@ -48,6 +48,7 @@ from radicale.app.propfind import ApplicationPartPropfind
from radicale.app.proppatch import ApplicationPartProppatch
from radicale.app.put import ApplicationPartPut
from radicale.app.report import ApplicationPartReport
from radicale.item import check_and_sanitize_props
from radicale.log import logger
# Combination of types.WSGIStartResponse and WSGI application return value
@ -268,7 +269,15 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
if "W" in self._rights.authorization(user, principal_path):
with self._storage.acquire_lock("w", user):
try:
self._storage.create_collection(principal_path)
new_coll = self._storage.create_collection(principal_path)
if new_coll:
jsn_coll = self.configuration.get("storage", "predefined_collections")
for (name_coll, props) in jsn_coll.items():
try:
checked_props = check_and_sanitize_props(props)
self._storage.create_collection(principal_path + name_coll, props=checked_props)
except ValueError as e:
logger.warning("Failed to create predefined collection %r: %s", name_coll, e)
except ValueError as e:
logger.warning("Failed to create principal "
"collection %r: %s", user, e)