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