feat(nc-webdav): generic dead-props on PROPPATCH/PROPFIND/REPORT

NC PROPPATCH only special-cased oc:favorite, silently dropped every
other prop while claiming 200. PROPFIND had no dead-prop lookup at
all. Reuse native /webdav/ dead-prop plumbing (now pub(crate)) so NC
surface gets real RFC 4918 §4.2 storage. Missing resource on
PROPPATCH is now 404 instead of a fake success no-op.
This commit is contained in:
M.Schmidt
2026-07-01 19:59:16 +02:00
parent 650d388b4e
commit f220217659
4 changed files with 159 additions and 136 deletions
+6 -1
View File
@@ -419,7 +419,12 @@ impl WebDavAdapter {
///
/// Written AFTER the live-property propstats inside a `<D:response>`.
/// Only emitted when `dead_props` is non-empty.
fn write_dead_props_propstat<W: Write>(
///
/// `pub(crate)` so the NextCloud-compatible handler
/// (`interfaces::nextcloud::webdav_handler`) can append the same
/// dead-property block to its own bespoke PROPFIND writers instead
/// of duplicating this XML shape.
pub(crate) fn write_dead_props_propstat<W: Write>(
xml_writer: &mut Writer<W>,
dead_props: &[(QualifiedName, Option<String>)],
) -> Result<()> {