72 Commits

Author SHA1 Message Date
Andrew Ruthven
b40c96debb If time-range is set, only return matching events.
Closes #280
2023-03-12 20:19:10 +01:00
Andrew Ruthven
15d01c8bed Store DTSTART and DTEND from user in shadow columns
We want to store the calculated dtstart and dtend in the database so we can
use SQL to fetch records. However, we also need what the user sent us so we
can allow prop-filters to be used as well.

So we store what the user sends us in dtstart_orig and dtend_orig and only
use for relevant prop-filter reports.
2023-03-12 20:17:43 +01:00
Andrew Ruthven
149ec3555f CLASS is an optional field, don't set it to PUBLIC
As specified in RFC5545 the CLASS field is optional, and if it isn't present
is treated as PUBLIC. To allow a is-not-defined prop-filter to find
resources without CLASS set, we need to not store in the database. This
turns out to be okay, because to enforce privacy we always check to see if
it is PRIVATE or CONFIDENTIAL. We never check to see if it is PUBLIC.

Closes #284.
2023-03-12 20:05:48 +01:00
Andrew Ruthven
4a380b12a2 Fixes to is-defined and is-not-defined prop-filter
Gosh, this was completely broken previously. A number of different scenarios now work.

I have used some of the state I've seen in a largish production database with the
presence of NULL and empty strings. I've assumed that empty string should be treated
as is-not-defined. Happy to be talked out of that.

Closes #281.
2023-03-12 20:05:48 +01:00
Andrew Ruthven
7349944fbc Remove change entry in file, that's what git history is for 2023-03-12 20:05:48 +01:00
Andrew Ruthven
be60ec1778 Improve on SQL syntax fix to keep logging working, and add regression test.
Closes #279.
2023-02-04 03:09:40 +00:00
Tobias Brox
6e6ff6b115 Fix SQL syntax error if is-not-defined is used as a prop-filter. 2023-02-04 03:09:40 +00:00
Andrew Ruthven
02af0c58ee Further fixes for PHP 8.1
I don't know why this only show up in the gitlab runners. I have PHP 8.1
locally.
2022-02-13 01:04:47 +13:00
Florian Schlichting
007bf95589 use foreach() instead of deprecated each() (fixes #190) 2019-12-06 18:21:08 +08:00
Jamie McClymont
9522fd5f3c Make range-based calendar queries use the new first_instance_start/last_instance_end columns 2019-02-28 16:00:19 +13:00
Jamie McClymont
b07019ed96 Make calquery expansion aware of the calendar default timezone
This fixes cases where we emit floating times
2019-02-28 16:00:19 +13:00
Florian Schlichting
a51caa38f1 properly check if $row has been unset (fixes #141)
Also fix deprecation warnings introduced with PHP 7.3 about the use of
continue inside switch statements, see
https://wiki.php.net/rfc/continue_on_switch_deprecation
2018-12-22 19:13:13 +01: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
404d9ab449 fix remaining apigen errors (duplicate function names etc) 2016-12-30 08:54:24 +01:00
Florian Schlichting
7cadfc9463 lets have only one function check_for_expansion() 2016-12-30 08:54:19 +01:00
Florian Schlichting
eb7f2edc0c eliminate trailing whitespace, expand tabs 2016-12-30 08:52:44 +01:00
“Paul
9dc026eb28 Support multiple text-match elements within a filter query. 2014-06-23 21:03:01 +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
Christoph Anton Mitterer
8e60bb3124 set line endings of most text files to LF
* Changed the end-of-line encodings of all non-Windows-related and non-autogenerated text files to use UNIX LF (lots of them had mixed LF/CRLF).

Conflicts:
	inc/caldav-PUT-functions.php
2013-09-02 14:37:23 +12:00
Andrew McMillan
a555fdad40 Deny calendar-query report on root, principal or addressbook
Even if recursive report is enabled.
2012-07-02 22:40:43 +12:00
Andrew McMillan
9eb023f7ef Handle allprop and ommission of prop tag in calendar-query. 2012-06-30 16:04:57 +12:00
Andrew McMillan
ca19d2369a Fix DISTINCT clause where DAViCal is configured to allow recursive calendars. 2012-06-27 12:16:38 +12:00
Andrew McMillan
51e8ddd032 Use fully namespaced tag. 2012-05-20 21:42:19 +12:00
Andrew McMillan
45d1fd817e Query efficiency fixes. 2012-05-14 21:03:42 +12:00
Andrew McMillan
acc6c719f7 Simple changes for new XML processing. 2012-04-30 14:13:03 +12:00
Andrew McMillan
612ac73a30 Try to short-circuit so we only do expansion if we know we need it. 2011-12-07 14:53:26 +13:00
Andrew McMillan
10afabbeb9 Rationalise confidential event rewriting and fix $c->hide_alarm function. 2011-10-31 13:15:49 +13:00
Andrew McMillan
e913600c70 Switch calendar query to new getVCalendarRange() function.
This fixes various bugs in time-range handling.
2011-10-06 23:34:18 +02:00
Andrew McMillan
84a7ea1150 More tweaking of time-range query construction.
And there will be further work on this too...
2011-10-06 11:07:37 +02:00
Andrew McMillan
d6524a87f4 Rewrite time-range SQL clauses for greater clarity. 2011-09-19 12:34:26 +12:00
Andrew McMillan
eaeec0bc02 This is the fix we are looking for regarding time-range queries. 2011-09-19 11:08:44 +12:00
Andrew McMillan
67ccb2ae03 Fix an error in calendar-query handling of time-range queries. 2011-09-17 15:38:57 +12:00
Andrew McMillan
af3478cd25 [Unfinished] Migrating away from deprecated iCalendar class.
This is working, to a point...  Some regression tests are still failing
and I need to investigate why, but this is substantially finished. The
remaining fixes will need to be in AWL/vCalendar in any case.
2011-09-14 23:05:20 +12:00
Andrew McMillan
bc1e264c6b Allow null dtstart to match any range, as per Scheduling Draft. 2011-09-14 11:27:15 +12:00
Andrew McMillan
b901981c7c Fix calendar-query handling of properties. 2011-08-24 20:38:32 +12:00
Andrew McMillan
452cd69100 Handle <prop> following <filter> & a single-ended time filter. 2011-08-23 10:44:37 +12:00
Andrew McMillan
db9083b587 Include tablename qualifier. 2011-06-03 14:46:33 -07:00
Andrew McMillan
2a1af89c77 Fix further issues with prop-filter handling. 2011-06-03 13:59:35 -07:00
Andrew McMillan
5e3ed8dedc Fix bug handling multiple prop-filter clauses. 2011-06-03 13:43:25 -07:00
Andrew McMillan
996bbedab2 Allow the calendar-query expansion to return all events in floating time. 2011-05-31 23:08:32 -07:00
Andrew McMillan
f4c73afb03 Finally give up on the SQL rrule pre-processing.
Signed-off-by: Andrew McMillan <andrew@morphoss.com>
2011-01-04 23:23:33 +13:00
Andrew McMillan
4614ae6449 Do old TODO and remove it. Nice. 2010-11-06 22:36:22 +13:00
Andrew McMillan
a828daaecd Support recursive REPORT query if configured to allow it. 2010-11-05 09:54:18 +13:00
Andrew McMillan
3637c99298 Omit the <response> for event outside the time range - when expanded. 2010-10-09 09:00:11 -04:00
Andrew McMillan
845db16c55 Switch event expansion to use vComponent.php rather than iCalendar. 2010-08-30 17:02:17 +12:00
Andrew McMillan
f50d6d7170 Don't exclude NULL DTSTART if reporting on scheduling collection. 2010-03-20 01:07:23 +13:00
Andrew McMillan
58c82938d1 Finally get rid of that PgQuery properly. 2010-03-17 17:32:52 +13:00
Andrew McMillan
73891a9fc0 Migrating REPORT calendar-query to AwlQuery. 2010-03-16 15:08:00 +13:00
Andrew McMillan
961d1c494a Make calendar-query report work with bound collections. 2010-03-15 23:55:29 +13:00