3527 Commits

Author SHA1 Message Date
Florian Schlichting
44ff0b3286 update tests for changed etags, unstable REV/UID or sort order, improved property parsing
Changed line wrapping in awl is one major reason for etag changes.

With this commit, all tests in regression-suite, binding and carddav
pass for me, using the configuration outlined in README.regression_tests
2017-09-21 00:39:30 +02:00
Florian Schlichting
0cab01f390 dav_test: all files and I/O are UTF-8 2017-09-21 00:39:24 +02:00
Florian Schlichting
69ef196730 create-database.sh: call update-davical-database with --dbuser instead of just --owner (see #124) 2017-09-20 17:02:57 +02:00
Florian Schlichting
10bb69d0a0 Card search invalid when negate-condition="no" (fixes #126)
Thanks Bart Vullings for reporting the bug and providing a fix!
2017-09-20 16:15:58 +02:00
Florian Schlichting
b550352aa5 POST: Fix namespace for caldav scheduling privileges
we use CALDAV:schedule-foo-bar in AllowedTo, but here it causes
XMLDocument to throw a DAViCal Fatal Error: [0] Dodgy looking namespace
from 'CALDAV:schedule-send-invite'!
2017-09-19 21:23:06 +02:00
Florian Schlichting
4410d7e94a dont put caldav.php in special URLs 2017-09-19 21:23:06 +02:00
Florian Schlichting
7f59b828d5 log failed attempts to set_dav_property
the path is not a known regular principal, collection, binding or resource
2017-09-19 21:23:06 +02:00
Florian Schlichting
7e3a9a476f group memberships for the calendar-proxy-{read,write} pseudo-principal are always empty
Only regular principals can be members in any groups, for
pseudo-principals group membership doesn't make sense. In case somebody
asks, do not return the group memberships of the parent principal but
rather provide an empty answer.
2017-09-19 21:22:58 +02:00
Florian Schlichting
8c5101c185 PROPPATCH: reject protected properties group-membership, calendar-proxy-{read,write}-for 2017-09-19 21:19:15 +02: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
Florian Schlichting
63c4de9f34 do not advertise ?add_member on a principal
We wouldn't know what to do with that anyway...

Fixes the CalDAV/add-member.xml test.
2017-09-19 21:16:43 +02:00
Florian Schlichting
5f3aecfda4 Revert "Support http://.../freebusy.php?foo@example.com"
This reverts commit 38788acc5cbec147d6a46a6254ef8eec0a270c71, which
causes the following tests to fail (not return any FREEBUSY):

    tests/regression-suite/0832-freebusy.test
    tests/regression-suite/0836-freebusy.test
    tests/regression-suite/0837-freebusy.test
    tests/regression-suite/0888-GET-freebusy.test
2017-09-19 20:01:00 +02:00
Florian Schlichting
40e2714adf use new AWL class constructor (fixes: #119) 2017-05-29 23:04:30 +02:00
Florian Schlichting
b4a1e39d6d CalDAVRequest: make content-type match non-greedy
this fixes a warning when the client doesn't include a space between
content-type and charset:

LOG: WARNING:Application sent content-type of "text/vcard;charset=utf-8" instead of "text/vcard"
2017-05-17 11:20:21 +02:00
Andrew Ruthven
22e0e4aa38 Improve parsing of RFC5545 durations
The previous regex failed to parse PT15M which is a valid duration.

This version more correctly implements:
  https://tools.ietf.org/html/rfc5545#section-3.3.6

It isn't totally correct as it incorrectly allows:

  PT10H20S

Which is invalid due to no minutes being present. Oh well.
2017-05-17 11:06:29 +12:00
Andrew Ruthven
38788acc5c Support http://.../freebusy.php?foo@example.com
Sometimes users set the Free/Busy URL to have a ?, not a /. Let's
support that.
2017-05-16 13:33:19 +12:00
Florian Schlichting
b1191bd83c caldav: leave some info about the exception we are catching 2017-04-28 17:43:13 +02:00
Florian Schlichting
ebdd6b1674 fix config example as well 2017-04-25 00:10:22 +02:00
Florian Schlichting
bbea62d288 Merge branch 'server-array-upper' into 'master'
Convert array keys for $_SERVER to uppercase

See merge request !38
2017-04-24 21:59:08 +00:00
Florian Schlichting
513e58fa41 Merge branch 'external-ua' into 'master'
Set the user agent string for external calendars

Closes #115

See merge request !37
2017-04-24 21:20:34 +00:00
Jan Losinski
b5072dd154 Set the user agent string for external calendars 2017-04-24 21:20:34 +00:00
Florian Schlichting
a16dfc7c41 cardquery: query limit can be used independently of any query filter 2017-04-24 22:31:32 +02:00
Florian Schlichting
76e540fb0a cardquery: typo, ends-with has wildcard in front 2017-04-24 22:30:53 +02:00
Florian Schlichting
29e2dbfe92 cardquery: a prop-filter without an actual filter rule means we simply need to ensure the property exists
This guards against a crash when calling ->GetNSTag() on a non-object.

This may need to be refined in case we could be dealing with something
that's not a prop-filter.
2017-04-24 22:25:18 +02:00
Jan Losinski
e97c9674e9 Convert array keys for $_SERVER to uppercase
It seems to be the case, that array indicies in $_SERVER are always
uppercase. Sadly I could not find any documentation of this but at
least with mod_php it is the case. Also a extensive search on github
projects seems to support this thesis.

On my installation the 'X-FORWARDED-PROTO' is even then uppercase when
its mixed case in the Header provided by the reverse proxy.

Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
2017-04-13 03:00:36 +02:00
Florian Schlichting
06e20e5508 dont send early exceptions to the client only, leave a trace in the error log too 2017-04-08 16:43:21 +02:00
Florian Schlichting
323292eb8c log an error instead of crashing on principal-property-search REPORT without a proper match clause (fix #114) 2017-04-08 14:41:50 +02:00
Florian Schlichting
e94d69d3f7 do not output unescaped XML special characters in if-match error message (fixes: #113) 2017-04-08 13:54:49 +02:00
Rik Theys
e0b8ecada5 Fix modified mapping (fix #108)
The checks to test if a "modified" attribute was found in the
$valid array used in_array, which fails.

Replace this with array_key_exists calls.

This fixes https://gitlab.com/davical-project/davical/issues/108

[ $mapping['modified'] is a key in $valid, not a value. This is a
regression introduced in 970b61ac, for 1.1.5 ]
2017-04-08 00:09:50 +02:00
Florian Schlichting
d205521bd4 drivers_ldap says "updated" has been replaced with "modified", so update example config accordingly 2017-04-07 23:58:33 +02:00
Scott Balneaves
8313f765ce Only list active principals in grant selection
modified as per Andrew McMillan's suggestion
2017-04-07 15:09:53 +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
1c174f4b78 fix sync of deleted events when hide_todo is set (fixes #100)
thanks Jerome Borsboom @hinotori
2017-04-07 14:29:42 +02:00
Florian Schlichting
74828c8c60 Update testsuite for changes related to #112 (4cf6628) 2017-04-07 14:17:00 +02:00
Florian Schlichting
4cf6628ea5 cannot-modify-protected-property should be used with 403 Forbidden, not 409 Conflict
see the end of https://tools.ietf.org/html/rfc4918#section-16 (WebDAV,
Precondition/Postcondition XML Elements)
2017-03-29 11:22:44 +02:00
Florian Schlichting
fb4f80d4c1 do not put two sets of angle brackets around cannot-modify-protected-property error tag (fixes #112) 2017-03-29 11:20:35 +02:00
Florian Schlichting
f1ca12bbe9 Fix display of deactivated users after LDAP sync to not include those in $c->do_not_sync_from_ldap
...thus reducing the rate of heart attacks in DAViCal admins.

Also: ignore empty user objects that my LDAP server seems to generate.
2017-03-27 16:56:34 +02:00
Florian Schlichting
7ccc7c4491 release 1.1.5 r1.1.5 2017-01-23 23:04:46 +01:00
Florian Schlichting
e50b366d46 Override erroneous lintian errors 2017-01-23 23:04:09 +01:00
Florian Schlichting
940c522aab Mark davical-doc "Multi-Arch: foreign" as suggested by the Multiarch hinter 2017-01-23 23:04:05 +01:00
Florian Schlichting
3702cac409 Use jdupes to remove duplicate files in davical-doc 2017-01-23 23:04:01 +01:00
Florian Schlichting
3ca2801059 Install example configs as /etc/davical/config.php and /etc/apache2/sites-available/davical.conf 2017-01-23 23:03:57 +01:00
Florian Schlichting
0f28e186c4 Make extra sure that the orig-source tarball does not contain any cruft 2017-01-23 23:03:52 +01:00
Florian Schlichting
a7dd4372b7 Bump dependency on libawl-php to 0.57 2017-01-23 23:03:47 +01:00
Florian Schlichting
129e962050 Update ChangeLog and CREDITS 2017-01-23 23:03:11 +01:00
Florian Schlichting
4f72fdfea1 Bump davical version to 1.1.5, DB is at 1.3.2 2017-01-23 23:02:56 +01:00
Florian Schlichting
caaad9ce85 Document remaining config settings for which there are defaults, as well as the very useful skip_bad_event_on_import 2017-01-23 22:59:35 +01:00
Florian Schlichting
dc9edfcfda Update regression suite for gratuitous whitespace changes 2017-01-17 23:40:54 +01:00
Florian Schlichting
2a84694331 Unbreak locale selection in admin interface
http://php.net/manual/en/function.setlocale.php says "Different systems
have different naming schemes for locales." This seems to be true for
platforms (eg Win vs. Linux), but on Debian AFAIR locales were always at
least two-part (de_DE), never just one (de). This seems to have been
broken in 504651a3, likely by mistake.

Also, switch locale immediately, even before writing to the database.

BTW, what happens when system default locale is configured to e.g. fr_FR
and the user selects "English" - does that work?
2017-01-17 23:40:26 +01:00
Florian Schlichting
21b5f8bacf Update apache-davical.conf adding .well-known rewriting 2017-01-17 23:39:53 +01:00