Commit Graph

110 Commits

Author SHA1 Message Date
Ralf Becker
e7b4f47d47 if we require an extra invite grant, we fail if that does not exist (bind privilege is not given in that case) 2013-01-24 15:33:24 +00:00
Ralf Becker
a98fc755c9 * CalDAV: remove "bind" privilege (create new events right) on other users or groups calendar, if invite requires special ACL grant, which current user does NOT have 2013-01-24 12:54:42 +00:00
Ralf Becker
ea23c03c8c * CalDAV: backport from Trunk: allow organizer (edit-rights) update with If-Schedule-Tag-Match eg. from iOS or OS X iCal when event series was changed with "this in future" semantics and fix for not working status change of participants 2013-01-15 13:42:46 +00:00
Ralf Becker
68368871d7 consistently send ETag by using and extending put_response_headers 2012-10-29 12:24:50 +00:00
Ralf Becker
df52e3de46 * CalDAV: show created and updated by user and date in iOS 6: new CalendarServer:(created|updated)-by properties 2012-10-24 07:13:11 +00:00
Ralf Becker
f124ef5fde * CalDAV: deleting an already declined invitation returned 403 Forbidden, instead 204 No Content 2012-10-02 12:58:59 +00:00
Ralf Becker
2aaec111b4 * CalDAV: privileges in other users calendar where reported wrong, leading clients to believe they have write rights here 2012-10-02 05:20:06 +00:00
Ralf Becker
1e939ff3a2 * Calendar/CalDAV: fixed not working accepting or rejecting recurrences of event series via CalDAV scheduling (eg. iOS devices) 2012-08-15 15:28:00 +00:00
Ralf Becker
2787fd56d0 * CalDAV: expand-property reports queried by iCal from OS X 10.7.4
- expanded-group-member-set
- expanded-group-membership
- calendar-proxy-read-for
- calendar-proxy-write-for
Both calendar-proxy reports can be combined in one request, which is now also handled correct.
2012-07-15 09:17:12 +00:00
Ralf Becker
d00d9e40b2 * CalDAV: fix error nothing known about column "id" 2012-04-06 13:18:54 +00:00
Ralf Becker
21c49b0b26 * Calendar/CalDAV/eSync: fixed etag generation to NOT query maximum user-modification date for each entry, fixed etag and ctag for eSync to only use recurance master, as ActiveSync event does not contain extra participant data for exceptions (virtual and real) 2012-03-12 08:20:36 +00:00
Ralf Becker
9b71a5c17a fixed own calendar was listed as shared too 2012-03-01 13:28:38 +00:00
Ralf Becker
2bc821f428 use groupdav->log() for all permanent error-messages, to log the into request-log too, if both If-Match and If-Schdule-Tag-Match given use If-Match for organiser/owner and If-Schedule-Tag-Match for attendees/participants 2012-02-21 20:04:45 +00:00
Ralf Becker
2939d7bbf3 propagate data from settings hook to handlers, to fix failed installs because setup was not detected 2012-02-14 17:38:45 +00:00
Ralf Becker
d89f48d9c1 implement RFC 5995 add member to collection via POST, but not yet set DAV:add-member due to problems with OS X clients 2012-02-04 20:24:01 +00:00
Ralf Becker
c5ca42a4b1 move app-specific settings to app-handler 2012-02-04 01:24:34 +00:00
Ralf Becker
d21be8d871 move logic of which addressbook/calendars are shared into app-handler 2012-02-04 01:03:56 +00:00
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