View Issue Details

IDProjectCategoryView StatusLast Update
0003377SOGoBackend Calendarpublic2016-12-28 18:09
Reporterfinrodd Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status newResolutionopen 
Platform[Client] MicrosoftOSWindowsOS Version7
Product Version2.3.2 
Fixed in Versionsoon 
Summary0003377: CalDav: Report request: Sogo ignore sub-elements in <DAV:prop>
Description

Sogo always returns the same result even though <D:prop> is specified with different children

ex:

in the request below, all the children of <C:calendar-data> are ignored:

<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<C:calendar-data>
<C:comp name="VCALENDAR">
<C:prop name="VERSION"/>
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
<C:prop name="UID"/>
<C:prop name="DTSTART"/>
<C:prop name="DTEND"/>
</C:comp>
</C:comp>
<C:expand start="2015112T-050000Z" end="2015114T-050000Z"/>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR"/>
</C:filter>
</C:calendar-query>

Steps To Reproduce
  1. Assert than the 2 REPORT requests below gives the same result, even though they have different bodies and therefore they souldn't

<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">

<D:prop>
<C:calendar-data>
<C:comp name="VCALENDAR">
<C:prop name="VERSION"/>
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
<C:prop name="UID"/>
<C:prop name="DTSTART"/>
<C:prop name="DTEND"/>
<C:prop name="DURATION"/>
<C:prop name="RECURRENCE-ID"/>
</C:comp>
</C:comp>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="2015112T000000Z" end="2015124T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>


<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">

<D:prop>
<C:calendar-data>
<C:comp name="VCALENDAR">
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
</C:comp>
</C:comp>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="2015112T000000Z" end="2015124T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>

TagsNo tags attached.

Activities

ludovic

ludovic

2016-12-28 18:09

administrator   ~0011119

Little to no CalDAV client ask for this but we should implement that anyway for client's efficiency. CalDAV clients receiving non-request properties will likely just ignore them anyway.

It should be implemented in SOGoAppointmentFolder. We should modify -parseDAVRequestedProperties: defined in SOGoGCSFolder.m to return a hash of array similar to:

vcalendar = (version);
vevent = (summary, uid, dtstart, dtend);
vtodo = (allprop);

Then, append the modified vcalendar output based on the requested properties.

Issue History

Date Modified Username Field Change
2015-11-03 21:08 finrodd New Issue
2016-12-28 18:09 ludovic Note Added: 0011119
2016-12-28 18:09 ludovic Severity major => feature
2016-12-28 18:09 ludovic Fixed in Version => soon