From bf97060e1903d634e06e6a5d4b5c25102374f105 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 22 Jan 2020 14:50:57 +0100 Subject: [PATCH] carddav: don't support PROPPATCH PROPPATCH can't be used to change an address object's data. For now, let's not support it. --- carddav/server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/carddav/server.go b/carddav/server.go index c53f654..764923e 100644 --- a/carddav/server.go +++ b/carddav/server.go @@ -247,6 +247,7 @@ func (b *backend) propfindAddressObject(propfind *internal.Propfind, ao *Address internal.GetContentTypeName: func(*internal.RawXMLValue) (interface{}, error) { return &internal.GetContentType{Type: vcard.MIMEType}, nil }, + // TODO: address-data can only be used in REPORT requests addressDataName: func(*internal.RawXMLValue) (interface{}, error) { var buf bytes.Buffer if err := vcard.NewEncoder(&buf).Encode(ao.Card); err != nil { @@ -262,7 +263,9 @@ func (b *backend) propfindAddressObject(propfind *internal.Propfind, ao *Address } func (b *backend) Proppatch(r *http.Request, update *internal.Propertyupdate) (*internal.Response, error) { - panic("TODO") + // TODO: return a failed Response instead + // TODO: support PROPPATCH for address books + return nil, internal.HTTPErrorf(http.StatusForbidden, "carddav: PROPPATCH is unsupported") } func (b *backend) Put(r *http.Request) error {