Commit Graph

93 Commits

Author SHA1 Message Date
Ralf Becker
5d2d28ee96 switching schedule-tag on again, as the issue seems to be a (hard to reproduce) bug, PUTs should either have If-Match or If-Schedule-Tag-Match 2012-01-30 23:55:12 +00:00
Ralf Becker
f2acf7707f outbox supports VFREEBUSY too, it is required from OS X iCal to autocomplete locations 2012-01-30 23:53:06 +00:00
Ralf Becker
e7269e6d29 do NOT overwrite calendar-description set via PROPPATCH 2012-01-30 00:40:55 +00:00
Ralf Becker
8645bac6a3 implement CalDAV <calendar-data><expand start="..." end="..."/></calendar-data> to return already expanded recurrences in a given time-range, instead of just a recurring event with a recurrence rule 2012-01-24 05:04:35 +00:00
Ralf Becker
f37f8578cf - fixed calendar_ical::importVCal() to (again) return 0 on etag mis-match, as documented and return 412 Precondition Failed in that case
- Disabling Schedule-Tag handling completly, as current implementation seems to create too much trouble with iCal under OS X or iOS, which send If-Schedule-Tag-Match condition event for major updates, not just changing own status or alarms
2011-11-08 21:09:06 +00:00
Ralf Becker
5e132c5a53 Two more fixes (thanks to Roland Scherer):
- using maximum from calendar modified and user_modified for getlastmodified, as for the etag
- invitations in inbox have to use METHOD: PUBLISH (not REQUEST)
2011-10-23 08:13:35 +00:00
Ralf Becker
291b540aa7 fix for iCal4OL using WinHTTP only supporting a certain header length 2011-10-23 07:59:05 +00:00
Ralf Becker
8096c34bef - fixed ORGANIZER/ATTENDEE in iCal for CalDAV:
+ do NOT use ORGANIZER for events without further participants or a different organizer
+ do not include event owner/ORGANIZER as participant in his own calendar, if he is only participant
--> all other cases include ORGANZIER and additional as ATTENDEE (tested with iCal on iOS and OS X)
- implemented schedule-tag and If-Schedule-Tag-Match header from CalDAV Scheduling
- allow to change participant status and add/remove alarms with schedule-tag instead of ETag
--> If-Schedule-Tag-Match header has precedence over If-Match (ETag) header, but limits changes to participant status and alarms
--> ToDo: test accepting, rejecting recurrences
2011-10-20 20:10:04 +00:00
Ralf Becker
d898e6c627 calendar-timezone needs full vcalendar component, not just a vtimezone 2011-10-20 14:01:16 +00:00
Ralf Becker
ceaec3d3c1 added calendar-timezone property, changed groupdav_handler::extra_properties signature (removed static and added $user parameter), removed calendar-user-address-set property belonging only to principal 2011-10-20 13:35:01 +00:00
Ralf Becker
512138ed56 diverse fixes for resources&locations, thought iCal only autocompletes locations, no idea why it skips resources, thought resources booked via webgui are shown correct 2011-10-17 15:36:28 +00:00
Ralf Becker
b2fa12eb3e remove unusual and unnecessary "EGw-...-wGE" prefix/postfix from etag and ctag 2011-10-08 11:34:55 +00:00
Ralf Becker
e05ce4d614 enclosing etag in quotes, as most servers do 2011-10-05 08:15:24 +00:00
Ralf Becker
bedafe6c79 fixed "403 Forbidden" when a participant with a group invitation tried to delete the event from his calendar 2011-10-05 07:39:11 +00:00
Ralf Becker
23584253fd not returning deleted entries for read, as they might have identical UID for caldav_name as a non-deleted entry and would therefore block access to these 2011-10-04 14:18:35 +00:00
Ralf Becker
0de2f3c527 fixed profind depth 0 directly on a resource contains name-part twice 2011-10-04 12:16:03 +00:00
Ralf Becker
288a88239b we should not return an etag here, as we never store the PUT ical byte-by-byte 2011-10-03 15:48:24 +00:00
Ralf Becker
175197d7c0 * CalDAV: no METHOD:PUBLISH for CalDAV outside the inbox 2011-10-03 12:53:28 +00:00
Ralf Becker
b11fa0302f * CalDAV/GroupDAV: return empty collection, as iCal under iOS 5 had problems with returning "404 Not found" status 2011-09-30 12:52:40 +00:00
Ralf Becker
0a7b7e40c8 - improved principal-property-search report to support test=(allof|anyof) and match-type=(contains|starts-with) attributes used by iOS iCal to autocomplete participants
--> participants are - thanks to CalDAV scheduling - now setable for new event, thought searching for them does NOT yet work, no idea why ;-)
- added somehow missing calendar-query report to supported-report-set
2011-09-24 21:10:53 +00:00
Ralf Becker
3f830b2bff - implemented principal-property-search report required for WebDAV ACL and used by Lightning to search for calendar-home-set
- had to implement a workaround for Lightning, as it wrongly interprets principal-property-search for calendar-home-set in the principal-collection-set
  matching our *DAV root returning all principals, as all have a matching calendar-home-set, as NOT supporting CalDAV scheduling
  --> search only current user's principal, when Lightning searches for calendar-home-set
- OPTIONS / return now calendar-auto-scheduling too, as Lightning only searches there, to check if server supports CalDAV scheduling
- fixed outbox freebusy request to cope with no X-CALENDARSERVER-MASK-UID and a single attendee
2011-09-23 12:04:21 +00:00
Ralf Becker
df1d9e81b2 - implemented regular CalDAV free-busy-query report
- fixed FBTYPE for tentative accepted invitations: BUSY-TENTATIVE
- fixed typo stalling outbox free-busy request
2011-09-22 19:49:01 +00:00
Ralf Becker
b5269738d7 read-free-busy, schedule-send and schedule-deliver privileges 2011-09-22 18:46:16 +00:00
Ralf Becker
c26fcffda7 first step for CalDAV scheduling
- principal reports scheduling-inbox-URL /<username>/inbox/ and scheduling-outbox-URL /<username>/outbox/
- outbox collection contains no events
- outbox correctly answers POST for freebusy information
- outbox respons to all other POST with "204 No Content", ignore client request to deliver invitations
- inbox collection contains events of unknown status (PARTSTAT=NEEDS-ACTION)
- inbox responds to DELETE with "200 Ok"
--> iCal under OS X now shows freebusy times :-)
(had to add "write-content" privilege for calendar collections user has edit rights for, to allow adding events)
2011-09-22 15:22:52 +00:00
Ralf Becker
1f39e5c562 - added WebDAV ACL props supported-privilege-set and current-user-privilege-set
+ currently only standard WebDAV privileges: read, read-current-user-privilege-set, write-content, bind and unbind used
  + they get only queried for collections, thought we dont report any write* on collections, as we dont allow to create calendars or change properties
- new groupdav::add_resource() method used to add all resources (incl. collections) to propfind or report requests
- improved autoindex to show nicely indented hierarchical properties
2011-09-21 20:08:21 +00:00
Ralf Becker
03ed1d3ddb - refactored code to use a single add_collection method in groupdav class
--> app groupdav classes now get calling groupdav object as parameter
Had a quick test with iOS & OS X addressbook, calendar and with Lightning
2011-09-18 10:56:56 +00:00
Ralf Becker
17f6dad7eb * CalDAV: fixed and enabled iterator again, to minimize resource usage, fix for mystylite bug #1942
it was disabled because sql query was broken, because we did not use MIN(cal_end) multiple events per cal_id were returned
2011-08-03 16:13:56 +00:00
Ralf Becker
816cae2dfa * CalDAV/GroupDAV: disabling not working iterator, causing not all events to be returned to client 2011-07-08 08:01:33 +00:00
Ralf Becker
c4a01cd4fc * CalDAV: handle deleted events, as not existing (404 Not Found) 2011-06-19 08:54:06 +00:00
Ralf Becker
0bfd238e3f * CalDAV: store name part of URL from client PUT request, to fully comply with CalDAV spec 2011-04-06 19:26:10 +00:00
Ralf Becker
66c61cb74e - move all filtering into SQL query in calendar_so, to be able to correctly return N rows starting from row M
- re-enabling propfind iterator again for calendar (fetching events in chunks of 500), to lower memory footprint
Please note: changed SQL queries used for CalDAV do not take changed participants (or status) in exceptions into account
2011-04-05 15:32:20 +00:00
Ralf Becker
3bb9e89bcf * CalDAV/Lightning: fixed under some conditions infinit poping up alarms and user not able to add alarms
- Lightning pops up alarm, until Sequence/etag get updated: if user has no edit rights on an other users calendar, etag never got updated, now we update it
- fixed user was not able to add alarms via CalDAV, if he had no edit rights for event (was always possible in web UI)
- alarms from other users calendars are not included any more, as they make no sense but a lot of trouble
- fixed wrong condition on adding alarms, causing some alarms no being saved
2011-03-05 10:21:32 +00:00
Jörg Lehrke
c59cb90742 * CalDAV: Apply other users' calendar color, too 2011-02-13 21:08:29 +00:00
Ralf Becker
9981730b29 moved ctag to calendar_bo, to use it in CalDAV and ActiveSync, thought it needs to be reworked, as it is to expensive performance-wise 2010-12-02 22:27:32 +00:00
Ralf Becker
07e09c71d8 move etag to calendar_bo 2010-11-26 21:32:10 +00:00
Ralf Becker
0571fc21e0 * support multiget report on url with uid, as lightning uses multiget after a PUT on the PUT url, which is the uid 2010-11-08 09:25:58 +00:00
Ralf Becker
f08decd739 /infolog/ does not imply setting the current user (for new entries it's done anyway) 2010-10-26 09:35:44 +00:00
Jörg Lehrke
298c4ebaf1 Fix time-range parser for CalDAV 2010-10-23 11:43:52 +00:00
Ralf Becker
8dee351338 avoid invinit recurrence on broken calendar entries (reference AND recur_type set) 2010-10-13 14:08:24 +00:00
Jörg Lehrke
a85fdb55cd Allow to add events to group calendars via CalDAV 2010-09-29 16:54:16 +00:00
Jörg Lehrke
9ae3b93e63 Fix CalDAV ctag calculation 2010-09-14 05:07:33 +00:00
Jörg Lehrke
6fde93d15b Improved ctag for CalDAV 2010-09-12 12:44:22 +00:00
Jörg Lehrke
07063ebf7a Update cal_modified for all required cases; adjust CalDAV ctag function 2010-09-11 18:08:48 +00:00
Jörg Lehrke
44c3c7eb9a Improve iPhone iCal support 2010-08-15 06:42:05 +00:00
Ralf Becker
a3d06cb638 improved performance by not checking exceptions for referencing a master which mentions them as exceptions 2010-08-05 17:11:13 +00:00
Jörg Lehrke
75b25bb796 Fix FroupDAV report issue 2010-07-02 05:01:15 +00:00
Jörg Lehrke
09bc2c09cd Fix CTag issues for GroupDAV 2010-06-29 13:52:56 +00:00
Jörg Lehrke
affd4b1885 Fix CalDAV issues 2010-06-29 09:19:25 +00:00
Jörg Lehrke
5cb14e716e Fix CalDAV delete event issue 2010-06-28 17:34:57 +00:00
Jörg Lehrke
bce68a9e82 Fix CalDAV group attendee issue; various GroupDAV improvements 2010-06-27 22:16:22 +00:00