sharing: share-by-group: add share resolution for other methods beside propfind

This commit is contained in:
Peter Bieringer
2026-07-19 11:04:46 +02:00
parent 5e4dd2451a
commit 1ff4c6ca03
7 changed files with 38 additions and 13 deletions

View File

@@ -33,8 +33,8 @@ from typing import Iterator, List, Mapping, MutableMapping, Optional, Tuple
import vobject
import radicale.item as radicale_item
from radicale import (httputils, pathutils, rights, storage, types, utils,
xmlutils)
from radicale import (httputils, pathutils, rights, sharing, storage, types,
utils, xmlutils)
from radicale.app.base import Access, ApplicationBase
from radicale.hook import HookNotificationItem, HookNotificationItemTypes
from radicale.log import logger
@@ -188,7 +188,10 @@ class ApplicationPartPut(ApplicationBase):
permissions_filter = None
if self._sharing._enabled:
# Sharing by token or map (if enabled)
share = self._sharing.sharing_collection_resolver(path, user)
user_lookup = user
if self._rights._user_groups is not None and len(self._rights._user_groups) > 0:
user_lookup += sharing.SHARING_SEPARATOR_GROUP + ','.join(self._rights._user_groups)
share = self._sharing.sharing_collection_resolver(path, user_lookup)
if share:
# overwrite and run through extended permission check
path = share['PathMapped']