Allow empty properties in PROPPATCH requests (#1580)

This commit is contained in:
mdecimus 2025-05-27 14:09:54 +02:00
parent a5116266f6
commit 74e13aae46
5 changed files with 20 additions and 2 deletions

View file

@ -16,7 +16,6 @@ If you are upgrading from v0.11.x, this version includes **breaking changes** to
- Report list attempts to deserialize empty values (#1562)
- Refresh expired FoundationDB transactions while retrieving large blobs (#1555).
## [0.12.1] - 2025-05-26
If you are upgrading from v0.11.x, this version includes **breaking changes** to the database layout and requires a migration. Please read the [UPGRADING.md](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING.md) file for more information on how to upgrade from previous versions.

View file

@ -362,6 +362,9 @@ impl CalendarPropPatchRequestHandler for Server {
has_errors = true;
}
}
(_, DavValue::Null | DavValue::Components(_)) => {
items.insert_ok(property.property);
}
_ => {
items.insert_error_with_description(
property.property,
@ -425,6 +428,9 @@ impl CalendarPropPatchRequestHandler for Server {
has_errors = true;
}
}
(_, DavValue::Null) => {
items.insert_ok(property.property);
}
_ => {
items.insert_error_with_description(
property.property,

View file

@ -308,6 +308,9 @@ impl CardPropPatchRequestHandler for Server {
has_errors = true;
}
}
(_, DavValue::Null) => {
items.insert_ok(property.property);
}
_ => {
items.insert_error_with_description(
property.property,
@ -371,6 +374,9 @@ impl CardPropPatchRequestHandler for Server {
has_errors = true;
}
}
(_, DavValue::Null) => {
items.insert_ok(property.property);
}
_ => {
items.insert_error_with_description(
property.property,

View file

@ -242,6 +242,9 @@ impl FilePropPatchRequestHandler for Server {
has_errors = true;
}
}
(_, DavValue::Null) => {
items.insert_ok(property.property);
}
_ => {
items.insert_error_with_description(
property.property,

View file

@ -168,7 +168,11 @@ pub async fn test(test: &WebDavTest) {
"MKCALENDAR",
"/dav/cal/john/my-named-events2",
[],
[("D:displayname", "Named Events 2")],
[
("D:displayname", "Named Events 2"),
("A:calendar-description", ""),
("A:supported-calendar-component-set", ""),
],
)
.await
.with_status(StatusCode::CREATED)