Commit Graph

153 Commits

Author SHA1 Message Date
ralf
d2e03e6a28 setting same chunk-size of 500 as iterator used for optimal performance 2023-02-15 12:41:33 +01:00
ralf
9ba61e0b25 implement PROPFIND and REPORTs specially multiget with a generator to fix various problems with the iterator logic 2023-02-15 12:40:12 +01:00
ralf
27bd803e84 fix empty collection in PROPFIND/REPORT after last commit caused by creating a reference / NULL value in filter for path-attr/caldav_name 2023-02-15 08:45:28 +01:00
ralf
5e0fd45173 fix found URL in multiget REPORT where reported as NOT found too, if number of URLs exceeds chunk-size of 500 2023-02-13 23:16:43 +01:00
ralf
0b86ba7a20 * Addressbook/CardDAV: fix new Thunderbird 110 could not sync big addressbooks
TB 110 does an initial PROPFIND and then requests ALL resources in a single multiget REPORT, which caused two problems:
a) enabled CalDAV/CardDAV request logging switched output-buffering on and then runs out of memory --> switching it and therefore logging off for multiget REPORTS with more then 200 resources
b) PROPFIND iterator wrongly continued running, if the not found resources together with the found ones exceeded the chunk-size of 500
2023-02-13 22:42:13 +01:00
Ralf Becker
b69de21bea fix PHP 8.0 TypeError: strlen(): Argument #1 ($str) must be of type string, array given 2022-01-17 21:35:50 +02:00
Ralf Becker
676fe9b36f * CardDAV/Addressbook: fix GET request regression after REST API introduction 2021-12-16 19:54:17 +02:00
Ralf Becker
66d45452ab fix PHP 8.0 TypeError: explode(): Argument #2 ($string) must be of type string, array given 2021-11-05 14:43:32 +01:00
Ralf Becker
59a6a3c717 fix CardDAV error with DAVx5 caused by PHP 8.0 throwing an error instead ignoring it with a warning
PHP 8.0 ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "tf-"
current code expected Content-Type header to have charset enclosed in quotes, which it was not
2021-10-11 09:50:46 +02:00
Ralf Becker
2c9949f362 REST API, do NOT take "Sync all in one addressbook" preference into account, but store in given AB 2021-09-28 11:35:01 +02:00
Ralf Becker
281e71ef71 use PUT with a UID as id to update an existing resource or create it, if not existing 2021-09-25 13:04:49 +02:00
Ralf Becker
e640873fc0 implement and document PATCH 2021-09-25 12:38:08 +02:00
Ralf Becker
1280de46d6 REST API allow sending a JSON patch to update or create a new contact (currently only via POST or PUT, not as PATCH!)
allows eg. to create a contact from a simple Wordpress contact-form only supporting POST requests and a flat object, see new example in the documentation
2021-09-24 18:06:13 +02:00
Ralf Becker
82c8ed51d2 Contacts REST API:
- implement missing PUT/POST of distribution list / CardGroups
- implement changes from next JsContact draft:
  + string plus extra localizations attribute instead of localizedString object
  + use "<domain>:<name>" for vendor attributes
- add/parse urn:uuid: prefix if UID is a UUID
2021-09-20 16:01:22 +02:00
Ralf Becker
e9998161a5 finished REST API for contacts modulo docu and bugs ;)
- JsCardGroup now used for distribution lists
- responses are not in "responses" attribute (no longer in root of object)
- fix sometimes empty / different members between PROPFIND/REPORT/JSON-GET and GET of group (caused by wrongly implemented limit to given AB)
- JSON pretty-print only if requested by Accept: application/pretty+json
- fix invalid JSON for errors (caused by opening {"responses": already sent
2021-09-19 11:09:44 +02:00
Ralf Becker
7617aae9d0 got POST, PUT and DELETE request to add, update and delete contacts working
added JSON exception handler with nicer JsCalendar parse errors
2021-09-17 20:15:36 +02:00
Ralf Becker
0768f5fadf WIP REST Api for contacts 2021-09-16 20:53:43 +02:00
Ralf Becker
38e2167166 WIP REST API for contacts using JsContacts draft 2021-09-15 18:45:45 +02:00
Ralf Becker
166718a22c remove config allowing to immediately delete contacts (as it's required for sync) 2021-05-18 14:02:51 +02:00
nathangray
84e03fe334 Addressbook: Fix contact categories were cleared when DAVx5 synced some Android clients 2021-04-30 09:26:00 -06:00
Ralf Becker
868135775c PHP 8 fixes 2021-03-29 16:47:19 +02:00
Ralf Becker
37be9f40d0 WIP contact sharing: context menu to share and filter for shared contacts 2020-10-16 21:34:42 +02:00
Ralf Becker
75403eea94 * CalDAV/CardDAV: allow removing categories 2019-05-28 18:48:14 +02:00
Ralf Becker
d151930412 dito for lists 2019-05-28 16:54:49 +02:00
Ralf Becker
c4f23f899f do NOT use xml CDATA for vCards to ensure correct replacement of control chars like VT 2019-05-28 16:27:50 +02:00
Ralf Becker
cc22e89242 * CalDAV: CalDAVSynchronizer: only allow owner/organizer to update or delete an event (not users with edit/delete rights) 2018-10-09 13:15:11 +02:00
Ralf Becker
13941bb0e6 * CardDAV: photo was not saved/changed in PUT requests 2018-08-24 13:56:38 +02:00
Ralf Becker
f1437d4ccb fixing a couple more PHP Warning count(): Parameter must be an array or an object that implements Countable 2018-04-13 09:12:26 +02:00
Ralf Becker
b58b9d06b9 * CardDAV/addresbook: fixed not working distribution-lists as groups in Mac addressbook 2018-04-12 13:03:14 +02:00
Ralf Becker
9777a04dad * CardDAV/Addressbook: fix can NOT create new entries on a minimal (non-compat) install
Caused by version-check agains not installed phpgwapi fails and causes new name-parts of url starting with a number to clash with existing contacts and therefore give a "412 Precondition failed"
2018-03-23 19:59:49 +01:00
Hadi Nategh
90a5e91fc7 * Addressbook: fix bug setting Hide User Account in preferences into Show all accounts breaks show accounts 2017-12-01 14:58:44 +01:00
Ralf Becker
e57c5832a6 * Adressbook/CardDAV/PostgreSQL: fix SQL error stalling sync of eg. eMClient with preference "Distributionlists as groups" enabled 2016-11-09 17:46:37 +01:00
Ralf Becker
7b95aa73b4 * CardDAV/Addressbook/PostgreSQL: fix SQL error, remove MySQL only FROM_UNIXTIME with our db abstration version 2016-11-02 09:40:16 +01:00
Ralf Becker
248fde6fef converted addressbook to use new api 2016-04-29 10:41:53 +00:00
Ralf Becker
dbb998de96 also add "principal-address" (URL of vCard of principal), as on pricipal itself 2016-04-27 13:45:46 +00:00
Ralf Becker
0e6fd77ffe * CardDAV: fix not working creation of new CardDAV account with OS X 10.11.4 addressbook (it stays empty)
OS X 10.11.4 addressbook does a propfind for "addressbook-home-set" and "directory-gateway" in the root and does not continue without it
2016-04-27 13:27:22 +00:00
Ralf Becker
682fd42a26 move CalDAV/CardDAV server to api 2016-04-02 10:44:17 +00:00
Ralf Becker
9eb1ecbd36 fix all IDE warnings, before moving classes to api, in case we want to merge it back to 14.x 2016-04-02 08:40:34 +00:00
Ralf Becker
7ada2354d3 move addresbook_bo to Api\Contacts, ldap to Api\Ldap, ldapserverinfo to Api\Ldap\ServerInfo, bo_tracking to Api\Storage\Tracking, historylog to Api\Storage\History, Api\Customfields to Api\Storage\Customfields 2016-03-06 13:45:15 +00:00
Ralf Becker
c33b041d23 * Addressbook/CardDAV: fix not working import / PUT of birthday in vCard
and prefer=representation on a "412 Precondition Failed" for a group
2015-10-16 07:50:43 +00:00
Ralf Becker
f1ba35613c * CardDAV/Addressbook: fix iOS 8.4 problem allways creating new contacts for admins in accounts addressbook, using now default or personal addressbook 2015-07-23 17:40:48 +00:00
Ralf Becker
40c9fb0adb fixed after r52504 empty PROPFIND in CardDAV 2015-04-18 13:20:56 +00:00
Ralf Becker
ef40fa8ae7 * CardDAV: fixed not working MULTIGET report, if more then 500 contacts requested 2015-04-15 10:00:25 +00:00
Ralf Becker
8da2d2a0ab fixed wrong (just the collection) Location header on POST to ?add-member url 2014-11-30 09:24:23 +00:00
Ralf Becker
40da5672bb * CardDAV/Addressbook/Preferences: accounts, primary group, all, ... were not selectable in personal preferences 2014-09-18 09:05:06 +00:00
Ralf Becker
fbf05c95f4 show addressbooks for user whos preferences are displayed, for "default" and "forced" only show acl independent settings 2014-07-23 14:00:20 +00:00
Ralf Becker
8c6ac14093 fixed typo 2014-07-13 09:01:09 +00:00
Ralf Becker
5090a02892 fixed sql error in carddav caused by sync-collection flag interpreted as filter 2014-02-20 19:38:21 +00:00
Ralf Becker
1d1dbd252c fixed missing sorting in inital sync-collection report with empty sync-token 2014-02-20 19:26:02 +00:00
Ralf Becker
a9b6c6e9b4 * CalDAV/CardDAV: fixed support for limited sync-collection report used eg. by Marten Gajdas Android apps 2014-02-20 17:46:15 +00:00