diff --git a/radicale/app/proppatch.py b/radicale/app/proppatch.py index 40646839..b2e654cb 100644 --- a/radicale/app/proppatch.py +++ b/radicale/app/proppatch.py @@ -113,13 +113,13 @@ class ApplicationPartProppatch(ApplicationBase): user = share['Owner'] permissions_filter = share['Permissions'] access = Access(self._rights, user, path, permissions_filter) + raw_permissions = self._rights.authorization(user, path) if not access.check("w"): logger.debug("TRACE/PROPPATCH/xml_proppatch: no native write-access: %r", path) if share: # priority share->rights->global - raw_permissions = self._rights.authorization(user, path) if logger.isEnabledFor(logging.DEBUG): - logger.debug("TRACE/PROPPATCH/share: raw_permissions=%r share[Permissions]=%r permit_properties_overlay=%s", raw_permissions, share['Permissions'], self._sharing.permit_properties_overlay) + logger.debug("TRACE/PROPPATCH/share: raw_permissions=%r share[Permissions]=%r permit_properties_overlay=%s enforce_properties_overlay=%s", raw_permissions, share['Permissions'], self._sharing.permit_properties_overlay, self._sharing.enforce_properties_overlay) if ("P" in share['Permissions'] or ("P" in raw_permissions and "p" not in share['Permissions']) or (self._sharing.permit_properties_overlay and "p" not in raw_permissions and "p" not in share['Permissions']) @@ -129,7 +129,9 @@ class ApplicationPartProppatch(ApplicationBase): (self._sharing.permit_properties_overlay and "P" not in raw_permissions and "P" not in share['Permissions'])): logger.info("PROPPATCH request on shared %r: write-access", path_orig) if permissions_filter is not None and "e" in permissions_filter: - logger.info("PROPPATCH request on shared %r: write-access, overlay enforced, but disabled by permission 'e'", path_orig) + logger.info("PROPPATCH request on shared %r: write-access, overlay enforced, but disabled by share permission 'e'", path_orig) + elif "e" in raw_permissions: + logger.info("PROPPATCH request on shared %r: write-access, overlay enforced, but disabled by rights permission 'e'", path_orig) else: share_overlay = True else: @@ -144,7 +146,9 @@ class ApplicationPartProppatch(ApplicationBase): logger.debug("TRACE/PROPPATCH/xml_proppatch: write-access/sharing: %r", path_orig) if self._sharing.enforce_properties_overlay: if permissions_filter is not None and "e" in permissions_filter: - logger.info("PROPPATCH request on shared %r: write-permissions, overlay enforced, but disabled by permission 'e'", path_orig) + logger.info("PROPPATCH request on shared %r: write-permissions, overlay enforced, but disabled by share permission 'e'", path_orig) + elif "e" in raw_permissions: + logger.info("PROPPATCH request on shared %r: write-permissions, overlay enforced, but disabled by rights permission 'e'", path_orig) else: share_overlay = True else: