1# Changelog for RCMCardDAV
2
3## Version 4.0.4 (to 4.0.3)
4
5- Fix #321: Boolean settings in presets caused errors when trying to store the preset's addressbooks to the database
6- Fix #322: The refresh time string from admin presets was not converted to seconds, causing errors or wrong values when
7  storing the preset's addressbooks to the database
8- Fix #324: Changes not immediately visible with postgresql (delete contact, add/remove contact to/from group)
9- Fix: spurious error returned when creating VCard on Google
10
11## Version 4.0.3 (to 4.0.2)
12
13- Allow release 1.0 of carddavclient in composer dependencies
14- No changes to the plugin itself
15
16## Version 4.0.2 (to 4.0.1)
17
18- Fix #316: Incompatibility with Sabre/VObject version 4 preventing saving contacts using custom labels
19- Fix: Default refresh time set to 1 sec in settings
20
21## Version 4.0.1 (to 4.0.0)
22
23- Fix: Plugin version was not shown in about window for tarball installations
24- Fix: Collation behavior was case-insensitive for MySQL (only). Now unified across the different supported DBMS.
25- Fix #306: With MySQL, sync failure could occur when several custom labels where used that only differed in case
26  (effect of previous issue).
27- Fix #308: With SQLite, the initial sync after adding a new addressbook was not automatically triggered.
28
29## Version 4.0.0 (to 3.0.3)
30
31This release contains changes to DB schema. The database will be migrated automatically upon login to roundcube.
32
33- All changes from 4.0.0-alpha1
34- Fix: Deletion of empty CATEGORIES-type groups
35- Fix: Delete CATEGORIES-type groups from DB that become empty during a sync
36- Fix: Renaming of empty CATEGORIES-type groups
37- Fix: During deletion, do not rely on the DB's ON CASCADE DELETE because this is disabled by default for SQLite
38- Fix: It was not possible to discover multiple addressbooks for an admin preset because of a wrong UNIQUE constraint in
39  MySQL
40- Fix: Catch exceptions thrown inside the plugin (avoid "white page" on error)
41- Increase the maximum lengths of password, email and url fields
42- Use transactions to synchronize concurrent operations on the same addressbook
43  (data consistency issues may still occur with MySQL because of roundcube DB
44  layer bug). For details, see [DBSYNC.md](doc/DBSYNC.md).
45- Unified database indexes across the different database backends: Create indexes for foreign key columns (PostgreSQL,
46  SQLite)
47- Fixed issues in the migration scripts and added SQL scripts showing the current DB schema
48- Update hungarian translation (thanks to @tsabi)
49
50## Version 4.0.0-alpha1 (to 3.0.3)
51
52Note: The Changelog for this version is not complete
53
54This is an alpha release because I did not perform any tests on it. Nevertheless, it has many bugs fixed and I encourage
55you to upgrade and report issues as you find them. The last release 3.0.3 has many issues that have been fixed with in
56v4. I push this release early mainly because of the security issue reported. I'll continue working on remaining issues I
57want to fix (note: all of them are also present in 3.0.3) for v4 and I intend release a more tested version and a more
58detailed changelog within the next weeks.
59
60- __Security issue__: It was possible to read data from other user's addressbooks. Depending on the configuration, it
61  might also have been possible to change data in their addressbooks. Thanks to @cnmicha for reporting this issue. This
62  issue affects all previously released versions of RCMCardDAV using a database cache.
63- Many bugs you reported and several more I discovered during refactoring have been fixed.
64- The password scheme now defaults to `encrypted` (if you have not configured a password scheme, this will take effect
65  automatically for newly stored password. If you don't want this, configure a password scheme in settings.php).
66- The URL is not changeable after creation of an addressbook anymore. It used to work in specific, but not all cases. As
67  the behavior is potentially broken and not easy to fix, it is removed for now.
68- The two kinds of contact groups (VCard-based vs. CATEGORIES-based) are not transparently supported to the possible
69  extent. The configuration switch is only meaningful concerning the type of group used when a __new__ group is created
70  from RCMCardDAV. See details [here](doc/GROUPS.md).
71- The CardDAV interaction is moved to a [library](https://github.com/mstilkerich/carddavclient). It is essentially a
72  complete rewrite of the code communicating with the CardDAV servers and includes interoperability tests with many
73  common servers, see [here](https://github.com/mstilkerich/carddavclient).
74