3573 Commits

Author SHA1 Message Date
Till Schäfer
26bab04599 replace php4 style constructors with __construct 2018-03-21 16:59:35 +01:00
Florian Schlichting
d459b489ac external fetch: improve error reporting 2018-01-13 23:46:46 +01:00
Florian Schlichting
81874649f7 external fetch: handle initial NULL of collection.modified 2018-01-13 23:22:12 +01:00
Florian Schlichting
05397d635c release 1.1.6 r1.1.7 2018-01-12 00:15:36 +01:00
Florian Schlichting
59b4c2c8ed switch to doxygen for api docs 2018-01-11 23:43:25 +01:00
Florian Schlichting
b8df885484 put the most important debug options in a more visible place 2018-01-11 23:36:16 +01:00
Frank Steinberg
9363a3d19a Improved handling of event modifications:
- only some event attributes modified by the organizer get also modified in attendees' instances of the event,
- revoked invitations mark the according attendee's event appropriately,
- a changed event time resets all attendees' PARTSTAT to NEEDS-ACTION.
2018-01-11 23:08:17 +01:00
Florian Schlichting
4e5d3ceda4 update unit test due to previous commit 2018-01-11 22:13:07 +01:00
Andrew McMillan
5edf66321d Fix common etag match code, use it everywhere. 2018-01-10 21:50:55 +00:00
Andrew McMillan
0966e5ce68 Tidy up some PHPdoc in DAVResource 2018-01-10 21:50:39 +00:00
Florian Schlichting
db709ddebd Merge branch 'ldap-uid-vs-cn' into 'master'
LDAP: any 'dn' compatibility

See merge request davical-project/davical!43
2018-01-10 21:39:21 +00:00
Florian Schlichting
a4940ac1e3 Merge branch 'ldap-sync-activate-users' into 'master'
LDAP: sync re-activate users

See merge request davical-project/davical!42
2018-01-10 21:36:10 +00:00
Andrew McMillan
ce19c87208 Merge branch 'correct-duration-handling' into 'master'
Correctly handle durations without units like "PT"

Closes #136

See merge request davical-project/davical!41
2018-01-10 21:35:44 +00:00
Jean-Baptiste Guerraz
79acc80eb7 use php ldap explode in order to be compatible with any dn 2018-01-10 17:00:13 +01:00
Jean-Baptiste Guerraz
0fa38c8580 sync ldap user - reactivate 2018-01-10 15:55:26 +01:00
Andrew McMillan
58cf5b01ad Correctly handle durations without units like "PT"
While this has always been handled in basic event parsing the handling
in VALARM components for related triggers was missing.
2018-01-10 14:10:12 +00:00
Florian Schlichting
bc9c39c455 add regression tests for iCal handling calendar delegations 2018-01-09 23:11:04 +01:00
Florian Schlichting
4335e790d1 drop tests/regression-suite/0528, same as 0527 2018-01-09 22:15:29 +01:00
Florian Schlichting
8b9b8ed244 rename DAVResource->_is_proxy_request to _is_proxy_resource 2018-01-09 22:15:29 +01:00
Florian Schlichting
e417061f29 Finally: implement managing calendar delegations from iCal
This is done with a PROPPATCH to the user's calendar-proxy-read or
calendar-proxy-write pseudo-collection, listing the new delegates inside
the group-member-set tag.

See https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/caldav-proxy.txt
2018-01-09 22:15:18 +01:00
Florian Schlichting
17c2022122 group-member-set and group-membership queries on proxy resources should be handled in DAVResource
Otherwise we cannot be sure if the resource we are looking at is a
proxy. Looking at the request as we did in DAVPrincipal is wrong, as one
request can result in several resources to be examined, only some of
which may be proxies.

BTW looking at the regression test changes, I'm not sure having
calendar-proxy-read-for on proxy principals is correct, but caldav-proxy
seems to have nothing to say on that so we leave it for now.
2018-01-09 22:11:30 +01:00
Florian Schlichting
6687bdcf03 update regression tests due to FetchProxyGroups changes 2018-01-09 01:30:38 +01:00
Florian Schlichting
ded783a603 DAVPrincipal->FetchProxyGroups(): disable grants_proxy_access_from_p()
I just don't get how it's supposed to work, but it doesn't seem to
return the expected proxy delegates. This SQL doesn't expand groups,
which is a feature, and in general we only look at the grants table and
completely disregard any default privileges the principal might have
set.
2018-01-09 01:30:18 +01:00
Florian Schlichting
7181e466eb DAVPrincipal->FetchProxyGroups(): invert arguments to pprivs()
this needs to be the other way round than above
2018-01-09 01:04:16 +01:00
Florian Schlichting
83e9106160 add DAVResource->IsProxyCollection() 2018-01-08 23:10:23 +01:00
Florian Schlichting
a7ba436f2f advertise support for principal-match REPORT
and a few more bits inspired by CalDAV/aclreports.xml:
    - strict Depth header checking
    - principal-match: match on dav_name if not $match_self
    - principal-match can "alternatively" return resources in a collection
      that belong to a principal, like a user's calendars when we query
      the principal URI
2018-01-08 22:51:22 +01:00
Florian Schlichting
f37daa4ed7 clean up obsolete code: supported_methods and supported_reports was moved to DAVResource 2018-01-08 22:45:33 +01:00
Florian Schlichting
eba26021c7 update doc and fix a warning 2018-01-08 22:43:27 +01:00
Florian Schlichting
50a29d96ab UI: create external bindings with type set (fix: #132) 2018-01-03 00:57:05 +01:00
Florian Schlichting
e02c8e37bb Merge branch 'patch-1' into 'master'
add PT to follow alias

See merge request davical-project/davical!40
2017-11-20 16:08:19 +00:00
CSchulz
cea49fe4a1 add PT to follow alias 2017-11-20 11:50:13 +00:00
Florian Schlichting
79a3cb9e33 Document $c->hide_bound and $c->disable_caldav_proxy_propfind_collections config options
These were added by Jan Mate in 2014 in 6229409 and c32a288
2017-10-25 23:34:36 +02:00
Florian Schlichting
3ba605288f release 1.1.6 r1.1.6 2017-10-25 11:48:43 +02:00
Florian Schlichting
7674fe9831 'perl update-davical-database' did not find the intended config file / patchdir
people may use that invocation in addition to calling
/usr/share/davical/dba/update-debian-database, and happen upon a
cryptic error when YAML tries to parse dba/update-davical-database
instead of config/administration.yml
2017-10-09 10:17:03 +02:00
Florian Schlichting
5dc4aed87c testsuite: support /principals/users/ and similar special URLs 2017-10-04 23:28:03 +02:00
Florian Schlichting
8d1a4dba0f testsuite: update for calendar-user-type support 2017-10-04 23:28:03 +02:00
Florian Schlichting
2ed5edaf5a Update scheduling test-suite: consistent linebreaks, unnecessary quoting, etags 2017-10-04 23:28:03 +02:00
Florian Schlichting
50dd8a8d73 fix confusing comments 2017-10-04 23:28:03 +02:00
Florian Schlichting
8f16da75eb fix "PHP Warning: preg_match(): No ending delimiter '.' found"
the second argument of param_to_global, if set, becomes the first
argument of a call to preg_match(). Unless it's the special value 'int',
it needs to have regex delimiters around it, like '/.*/'

In this case, we're not interested in the value of the add-member
parameter, we only want to check for its existence, so skip validation.
2017-10-04 23:02:12 +02:00
Florian Schlichting
528f4dd62d add a log entry for login failures (fix #105) 2017-10-04 22:36:33 +02:00
Florian Schlichting
88bf8fa704 PUT: actually propagate database error to client (fix: #127) 2017-10-04 22:36:33 +02:00
Florian Schlichting
39001794a3 Update caldav_functions.sql for Postgresql 10
From version 10, Postgresql does not allow set-returning functions in
CASE statements. As we're using the functions recursively, we cannot
use LATERAL as suggested in the error message, but we can switch the
condition inside-out with only a limited amount of repetition.
2017-10-04 22:36:29 +02:00
Florian Schlichting
6ad5511c1e fix "PHP Notice: Undefined property" warnings 2017-10-04 22:36:07 +02:00
Florian Schlichting
b9ea83379c Merge branch 'calendar_user_type' into 'master'
Add support for calendar-user-type

See merge request davical-project/davical!39
2017-10-04 20:29:01 +00:00
Pierre GIRAUD
8e04eb27ae
Add support for calendar-user-type 2017-10-03 11:44:19 +02:00
Frank Steinberg
3bb6cd4479 Resolve attendee group names to lists of individual users. Configurable by $c->enable_attendee_group_resolution (from !21) 2017-09-21 23:27:51 +02:00
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