Fix double nested CalDAV and CardDAV property tags (fixes #1591)
This commit is contained in:
@@ -109,11 +109,9 @@ impl Display for DavValue {
|
|||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
concat!(
|
concat!(
|
||||||
"<B:supported-address-data>",
|
|
||||||
"<B:address-data-type content-type=\"text/vcard\" version=\"4.0\"/>",
|
"<B:address-data-type content-type=\"text/vcard\" version=\"4.0\"/>",
|
||||||
"<B:address-data-type content-type=\"text/vcard\" version=\"3.0\"/>",
|
"<B:address-data-type content-type=\"text/vcard\" version=\"3.0\"/>",
|
||||||
"<B:address-data-type content-type=\"text/vcard\" version=\"2.1\"/>",
|
"<B:address-data-type content-type=\"text/vcard\" version=\"2.1\"/>",
|
||||||
"</B:supported-address-data>"
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -121,10 +119,8 @@ impl Display for DavValue {
|
|||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
concat!(
|
concat!(
|
||||||
"<A:supported-calendar-data>",
|
|
||||||
"<A:calendar-data-type content-type=\"text/calendar\" version=\"2.0\"/>",
|
"<A:calendar-data-type content-type=\"text/calendar\" version=\"2.0\"/>",
|
||||||
"<A:calendar-data-type content-type=\"text/calendar\" version=\"1.0\"/>",
|
"<A:calendar-data-type content-type=\"text/calendar\" version=\"1.0\"/>",
|
||||||
"</A:supported-calendar-data>"
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -132,7 +128,6 @@ impl Display for DavValue {
|
|||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
concat!(
|
concat!(
|
||||||
"<A:supported-calendar-component-set>",
|
|
||||||
"<A:comp name=\"VEVENT\"/>",
|
"<A:comp name=\"VEVENT\"/>",
|
||||||
"<A:comp name=\"VTODO\"/>",
|
"<A:comp name=\"VTODO\"/>",
|
||||||
"<A:comp name=\"VJOURNAL\"/>",
|
"<A:comp name=\"VJOURNAL\"/>",
|
||||||
@@ -146,7 +141,6 @@ impl Display for DavValue {
|
|||||||
"<A:comp name=\"PARTICIPANT\"/>",
|
"<A:comp name=\"PARTICIPANT\"/>",
|
||||||
"<A:comp name=\"VLOCATION\"/>",
|
"<A:comp name=\"VLOCATION\"/>",
|
||||||
"<A:comp name=\"VRESOURCE\"/>",
|
"<A:comp name=\"VRESOURCE\"/>",
|
||||||
"</A:supported-calendar-component-set>"
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,10 @@ use common::{
|
|||||||
core::BuildServer,
|
core::BuildServer,
|
||||||
manager::boot::build_ipc,
|
manager::boot::build_ipc,
|
||||||
};
|
};
|
||||||
use dav_proto::schema::property::{DavProperty, WebDavProperty};
|
use dav_proto::{
|
||||||
|
schema::property::{DavProperty, WebDavProperty},
|
||||||
|
xml_pretty_print,
|
||||||
|
};
|
||||||
use directory::Permission;
|
use directory::Permission;
|
||||||
use groupware::{DavResourceName, cache::GroupwareCache};
|
use groupware::{DavResourceName, cache::GroupwareCache};
|
||||||
use http::HttpSessionManager;
|
use http::HttpSessionManager;
|
||||||
@@ -604,6 +607,8 @@ impl DavResponse {
|
|||||||
eprintln!(" {}: {:?}", key, value);
|
eprintln!(" {}: {:?}", key, value);
|
||||||
}
|
}
|
||||||
if !self.xml.is_empty() {
|
if !self.xml.is_empty() {
|
||||||
|
eprintln!("XML: {}", xml_pretty_print(self.body.as_ref().unwrap()));
|
||||||
|
|
||||||
for (key, value) in self.xml.iter() {
|
for (key, value) in self.xml.iter() {
|
||||||
eprintln!("{} -> {:?}", key, value);
|
eprintln!("{} -> {:?}", key, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -323,29 +323,26 @@ pub async fn test(test: &WebDavTest) {
|
|||||||
CalDavProperty::SupportedCalendarComponentSet,
|
CalDavProperty::SupportedCalendarComponentSet,
|
||||||
))
|
))
|
||||||
.with_values([
|
.with_values([
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VAVAILABILITY",
|
"A:comp.[name]:VAVAILABILITY",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:AVAILABLE",
|
"A:comp.[name]:AVAILABLE",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VRESOURCE",
|
"A:comp.[name]:VRESOURCE",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VTODO",
|
"A:comp.[name]:VTODO",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:DAYLIGHT",
|
"A:comp.[name]:DAYLIGHT",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:STANDARD",
|
"A:comp.[name]:STANDARD",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VLOCATION",
|
"A:comp.[name]:VLOCATION",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VTIMEZONE",
|
"A:comp.[name]:VTIMEZONE",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VFREEBUSY",
|
"A:comp.[name]:VFREEBUSY",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VEVENT",
|
"A:comp.[name]:VEVENT",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VJOURNAL",
|
"A:comp.[name]:VJOURNAL",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:PARTICIPANT",
|
"A:comp.[name]:PARTICIPANT",
|
||||||
"A:supported-calendar-component-set.A:comp.[name]:VALARM",
|
"A:comp.[name]:VALARM",
|
||||||
]);
|
]);
|
||||||
properties
|
properties
|
||||||
.get(DavProperty::CalDav(CalDavProperty::SupportedCalendarData))
|
.get(DavProperty::CalDav(CalDavProperty::SupportedCalendarData))
|
||||||
.with_values([
|
.with_values([
|
||||||
concat!(
|
concat!("A:calendar-data-type.", "[content-type]:text/calendar"),
|
||||||
"A:supported-calendar-data.A:calendar-data-type.",
|
"A:calendar-data-type.[version]:2.0",
|
||||||
"[content-type]:text/calendar"
|
"A:calendar-data-type.[version]:1.0",
|
||||||
),
|
|
||||||
"A:supported-calendar-data.A:calendar-data-type.[version]:2.0",
|
|
||||||
"A:supported-calendar-data.A:calendar-data-type.[version]:1.0",
|
|
||||||
]);
|
]);
|
||||||
properties
|
properties
|
||||||
.get(DavProperty::CalDav(CalDavProperty::SupportedCollationSet))
|
.get(DavProperty::CalDav(CalDavProperty::SupportedCollationSet))
|
||||||
@@ -382,13 +379,10 @@ pub async fn test(test: &WebDavTest) {
|
|||||||
properties
|
properties
|
||||||
.get(DavProperty::CardDav(CardDavProperty::SupportedAddressData))
|
.get(DavProperty::CardDav(CardDavProperty::SupportedAddressData))
|
||||||
.with_values([
|
.with_values([
|
||||||
concat!(
|
concat!("B:address-data-type.", "[content-type]:text/vcard"),
|
||||||
"B:supported-address-data.B:address-data-type.",
|
"B:address-data-type.[version]:3.0",
|
||||||
"[content-type]:text/vcard"
|
"B:address-data-type.[version]:4.0",
|
||||||
),
|
"B:address-data-type.[version]:2.1",
|
||||||
"B:supported-address-data.B:address-data-type.[version]:3.0",
|
|
||||||
"B:supported-address-data.B:address-data-type.[version]:4.0",
|
|
||||||
"B:supported-address-data.B:address-data-type.[version]:2.1",
|
|
||||||
]);
|
]);
|
||||||
properties
|
properties
|
||||||
.get(DavProperty::CardDav(CardDavProperty::SupportedCollationSet))
|
.get(DavProperty::CardDav(CardDavProperty::SupportedCollationSet))
|
||||||
|
|||||||
Reference in New Issue
Block a user