135 Commits

Author SHA1 Message Date
Florian Schlichting
4b7abbbd83 drop default $position argument from BuildXMLTree everywhere (awl!22) 2023-02-26 22:10:34 +01:00
Andrew Ruthven
48efbb272b Fix Fatal PHP Error if Depth is more than 1.
Merge request was proposed by xhess on GitLab, but the commit
had no content. I've solved it, possibly the same way.

For the initial commit:
Executing the second example at https://wiki.davical.org/index.php?title=PROPFIND
The "Depth: 2" header is the problem. Setting the depth header larger than 1
causes the function "compare_val_with_re" to be defined again. Now checking if
the function has already been defined fixes the problem.
2018-11-12 19:32:34 +13:00
Florian Schlichting
a6b286ab98 caldav-proxy 5.2: calendar-proxy-read/write are themselves principal resources
Fixes the CalDAV/calendaruserproxy.xml test.
2017-09-19 21:19:02 +02:00
Scott Balneaves
8052111635 modify hide_older_than logic to allow through recurring events (fixes #103, !36) 2017-04-07 15:08:10 +02:00
Florian Schlichting
eb7f2edc0c eliminate trailing whitespace, expand tabs 2016-12-30 08:52:44 +01:00
Louis Duruflé
00eb3c8e49 HttpDateFormat is actually in AwlDBDialect 2015-10-03 00:11:41 +02:00
Ján Máté
c32a288385 added $c->disable_caldav_proxy_propfind_collections option - it is very useful if your client not uses the "calendar-proxy-read" and "calendar-proxy-write" resources returned by PROPFIND for each principal (http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk/doc/Extensions/caldav-proxy.txt). The main reason to disable these resources is that it is EXTREMELY expensive to create them (especially on servers with lot of users who share their collections) and most clients will never use them (or use this functionality by explicitly asking for these resources using expand-property REPORT, which will work regardness the value of this option)
supported values:
false/unset => keep these resource active
true	=> never show these resources
array('User-Agent'=>'#regex1#', 'X-Client'=>'#regex2#') => if a client sends "User-Agent" header which matches the regex1 OR "X-Client" header which matches regex2 then do not show these resources
2014-05-14 13:58:10 +02:00
Ján Máté
6229409717 added $c->hide_bound configuration options - it is very useful if you use iOS (which not supports delegation) in combination with other software which supports degation ... simply use case is: bind all collections you want to see on iOS (emulation of delegation) and then hide these collections from other clients with real delegation support
supported values:
false/unset => always show bound collections
true	=> never show bound collections
array('User-Agent'=>'#regex1#', 'X-Client'=>'#regex2#') => if a client sends "User-Agent" header which matches the regex1 OR "X-Client" header which matches regex2 then all bound collections are hidden
2014-05-14 13:46:00 +02:00
Ján Máté
7be6aee280 added functions for regex comparison (see next commits) 2014-05-14 13:37:51 +02:00
Ján Máté
c2b6be3b65 fix for $c->hide_TODO processing and user-agent extension
new option: if set to PHP regex string then hide_TODO is enabled if the client
user-agent string matches the regex for example:
    $c->hide_TODO='#^iOS.*dataaccessd.*#';
will hide all todos from non-owner/non-admin users for iOS devices
2013-10-25 12:16:27 +13:00
Ján Máté
16f617b637 fix of major todo synchronization issue if $c->hide_older_than option is set
todo without start date was never synced
2013-10-25 12:16:27 +13:00
Andrew McMillan
58bbe1c8c3 Change to read all calendars and then discard inaccessible ones 2013-10-15 23:43:35 +13:00
Andrew McMillan
350bb08445 The SQL date formatting constants have moved. 2013-09-26 16:09:13 +02:00
Andrew McMillan
acc6c719f7 Simple changes for new XML processing. 2012-04-30 14:13:03 +12:00
Andrew McMillan
f55f8fbee3 Allow complete disabling of handling for Apple's old calendar-proxy.
We'll make this a default behaviour after 2012 is over and remove it
sometime after that.
2012-03-22 13:52:20 +13:00
Andrew McMillan
7e5b6a28b6 We need to coalesce the last_modified data as well as the created. 2011-10-05 16:59:32 +02:00
Andrew McMillan
13ce4c147a Add support for writing local scheduling requests on PUT.
In the new Scheduling Extensions for CalDAV the server is expected
to construct iCalendar METHOD:REQUEST invitations and put them into
the scheduling inbox for each (local) attendee.  This patch does
that, and hopefully breaks the back of implementing the full
scheduling extensions.
2011-09-07 23:40:28 +12:00
Rob Ostensen
a6ff1760f2 make refreshing actually work 2011-08-25 14:17:36 +12:00
Andrew McMillan
595e724426 Fix bug in handling bound resources with DAVResource changes.
Signed-off-by: Andrew McMillan <andrew@morphoss.com>
2011-01-04 18:46:51 +13:00
Andrew McMillan
ac190c7277 Fix bugs in previous commit. Plus regression tests for it.
Signed-off-by: Andrew McMillan <andrew@morphoss.com>
2010-12-07 09:39:16 +13:00
Andrew McMillan
9b079d7549 Handle empty PROPFIND, don't blow up on invalid XML.
Signed-off-by: Andrew McMillan <andrew@morphoss.com>
2010-12-07 09:28:12 +13:00
Andrew McMillan
76768719c9 Handle a level of indirection in Binds of binds. 2010-09-02 23:04:35 +12:00
Andrew McMillan
83059270d9 Wrap calendar-specific things for PROPFIND in an IsCalendar() test. 2010-08-31 19:22:32 +12:00
Andrew McMillan
e4e2a1fd47 Explicitly specify permissions matching. 2010-06-29 23:51:17 +12:00
Andrew McMillan
adb1f949ac Check for existence of target resource before we check for READ perm. 2010-06-28 08:41:46 +12:00
Andrew McMillan
b55e69399f Switch to put caldav_data.* in result list after calendar_item.* 2010-04-16 12:47:18 +12:00
Andrew McMillan
cd154199b8 Initialise the parent_container when constructing from a row. 2010-03-24 23:41:23 +13:00
Andrew McMillan
4d674c4f92 Getting bindings to work as seamlessly as possible. 2010-03-15 00:31:16 +13:00
Andrew McMillan
0a1b3c2d59 All regression tests passing again with BIND for PROPFIND. 2010-03-14 12:16:12 +13:00
Andrew McMillan
ed055722e9 Working BIND and PROPFIND of bound resources. 2010-03-14 00:22:43 +13:00
Andrew McMillan
57920da746 Switch from AllowedTo() to HavePrivilegeTo() to support tickets. 2010-03-12 18:29:46 +13:00
Andrew McMillan
2255e1fa6a Use NeedPrivilege() method to check privileges. 2010-03-06 23:27:49 +13:00
Andrew McMillan
9460803f71 Add an option to restrict visible contents to a limited date range.
This patch adds ability to hide old events from Caldav clients. New
configuration option $c->hide_older_than accepts an integer number
of days.  For example, setting $c->hide_older_than=90 hides all
events with "end date" older than 90 days. The main purpose of this
patch is allowing to use Sunbird with more than 500 Caldav events
without removing these events from calendar.  Without this patch
the Sunbird slows down and load calendars extremely slowly (up to
10 min. for 1800 events).
2010-02-28 11:19:36 +13:00
Andrew McMillan
429940f4d9 The <allprop> can be at the top level, not within the <prop>. 2010-02-26 13:45:30 +13:00
Andrew McMillan
1eb677de16 Make some of those unused functions really not be used! 2009-12-21 21:41:37 +13:00
Andrew McMillan
19199d5f86 Replaced the old get_permissions() call with the new permissions model. 2009-12-21 13:04:25 +13:00
Andrew McMillan
e5b1139d86 New PROPFIND implementation. 2009-11-12 00:43:09 +13:00
Andrew McMillan
c83873c32a Tidying up the corpse... 2009-11-12 00:36:16 +13:00
Andrew McMillan
dd0d152cb4 Correct <creationdate> format & group-member* responses. 2009-11-12 00:17:45 +13:00
Andrew McMillan
4aced6ff32 Move proxy tests to use accessors. 2009-11-08 20:30:26 +13:00
Andrew McMillan
e957d07927 Be as lazy as possible about doing that horrible proxy query. 2009-11-07 21:53:23 +13:00
Andrew McMillan
1ad6713dfc Correct response for schedule-inbox. 2009-11-02 14:23:22 +13:00
Andrew McMillan
5b99bb68e0 Improving response on non-existent resources. 2009-11-02 11:47:50 +13:00
Andrew McMillan
871e6841f1 We will only return supported-calendar-component-set on a calendar for now. 2009-11-02 10:02:50 +13:00
Andrew McMillan
379747180a Add support for supported-method-set & supported-report-set. 2009-11-02 10:02:18 +13:00
Andrew McMillan
9e1b4170a7 Only return an ordered set if so configured. 2009-10-06 14:37:58 +13:00
Andrew McMillan
f2bb76091a Don't return scheduling inbox/outbox in Depth 1 propfind on principal. 2009-09-25 22:14:45 +12:00
Andrew McMillan
b78c4d6d12 Allow for namespaced properties. Not all are in the DAV space. 2009-09-11 23:45:45 +12:00
Andrew McMillan
48eb93eaec Restyle to use ' where possible as performance tweak. 2009-09-11 11:04:59 +12:00
Andrew McMillan
36ef7160f5 Make the base URL in a PROPFIND reflect the actual requested URL. 2009-09-10 23:19:53 +12:00