Releases: mstilkerich/rcmcarddav
RCMCardDAV v5.1.0
- Allow to hide contacts without email also for user-defined addressbooks (Fixes #429)
- Re-introduced option
preemptive_basic_auth
to send HTTP basic Authorization header with every request. Also settable via user-interface. (Fixes #407) - Support setting roundcube's default addressbook to an addressbook from a preset (Fixes #440)
- New option
ssl_noverify
to disable verification of the CardDAV server`s SSL certificate in HTTPS connections. Also settable via user-interface.
RCMCardDAV v5.0.1
- Fix: Tarball release failed to add its autoloader in time (Fixes: #415)
- Fix: Removed string interpolation variants deprecated with PHP 8.2
RCMCardDAV v5.0.0
NOTE: The tarball-based installation does not work for 5.0.0, see #415. Therefore I have pulled the tarball.
NOTE: Before upgrading to v5, please read the upgrade notes in README.md.
Version 5.0.0 (to 5.0.0-beta1)
- Minimum supported PHP version for 5.0 is PHP 7.4 (Fixes #414)
- Fix: Internal server error with PHP8 when searching address fields of contacts (Fixes: #410)
- Fix: Assertion failure in DelayedPhotoLoader (Fixes: #404)
- Fixes for better handling of incoming vCard4 (Fixes: #411)
- Handle data-URI-style inline PHOTO as used in vCard4
- Use VCard conversion to handle v4 properties such as KIND=group for which extensions are used in v3 vCards
- Fix: Do not attempt to download photos from URIs with unsupported URI scheme (supported are http and https) (#411)
- When an invalid value is submitted in one of the settings forms, RCMCardDAV will now abort with an error. Previous
versions of RCMCardDAV would ignore the value when possible an instead keep the existing value or use a default value. - Backend will refuse Frontend request to remove user account created from preset
- On initial installation of RCMCardDAV, the database schema is created from a single script with the current schema
version. Previous versions incrementally executed all migration scripts since the very beginning (Fixes #395) - In the settings forms, some simple browser form validation has been added (Fixes #400)
Version 5.0.0-beta1 (to 4.4.4)
Changes to the data model
RCMCardDAV never had the notion of an account in its data model. In its early releases, it was necessary for the user to
individually specify each addressbook by its URL. Later on, auto-discovery of all addressbooks on the server was added,
but after the discovery these addressbooks existed as independent objects in the database and RCMCardDAV did not keep
any track that they belong to one account. The addressbooks created from admin presets are an exception to this, as they
are linked by virtue of belonging to the same admin preset. This is why it was possible to add re-discovery (only) for
admin presets in v4.3.
The old data model has a number of issues: Smaller annoyances, such as the user having to edit a changed password in
each addressbook of the account upon password change. But also larger issues, such as the inability to perform a
rediscovery on a user-added account, as for being able to determine new and removed addressbooks, we need to have an
idea of which addressbooks belong to one account. With v5, RCMCardDAV gets accounts in its data model, which maintain
the data common to all addressbooks of an account (particularly the credentials), with each addressbook belonging to an
account.
The database migration scripts try to identify the addressbooks belonging to the same account. For addressbooks created
from an admin preset, this is easy and one account will be created. For user-created addressbooks, an account will be
created for the addressbooks that have a common parent URL (i.e. URL with the last path component removed is the same)
and use the same username. If this heuristic fails, additional accounts will result and the user will have to delete
the extra accounts and perform a rediscovery on the remaining account to have the addressbooks wrongly assigned to other
accounts added to the retained account.
This change also means that it is now possible for RCMCardDAV to store accounts with no addressbooks at all, which is a
state that may exist on the server and lays the basics for possible future features such as adding new addressbooks to
the server from within RCMCardDAV.
Changes in admin settings
- Presets: Replaced option
carddav_name_only
with thename
option, which can define a template for naming
addressbooks. The old naming withcarddav_name_only=false
is equivalent toname='%a (%N)', whereas with
carddav_name_only=truewould correspond to
name='%N'` (#368) - Presets: Removed feature and option
require_always
. It is now replaced by a simplerrequire_always_email
feature
that does the same but only for the email field (#399) - Presets: Addressbooks of a removed preset are provided as readonly until their deletion upon next login. Previously,
these would be provided as writeable addressbooks, as the adminreadonly
setting is no longer available. Note that
the readonly setting is not considered a security option but an interface tweak. To prevent users from modifying an
addressbook, the proper way is to configure this by the permissions on the CardDAV server side. - Presets: Removed option
rediscover_mode
. Rediscovery is now performed based on the new preset option
rediscover_time
, which allows to define a time interval for rediscovery. The same option is also available for
user-created accounts. Rediscovery upon expiry of this interval is performed during login. - It is now possible to have auto-discovered addressbooks and extra addressbooks directly specified by their URL in each
preset. The latter are not subject to the discovery and kept in sync with the preset configuration. Discovery can also
be disabled for a preset by leaving the discovery url of the preset unset. This removes the special semantic of the
URL previously available to specify an addressbook outside the user's addressbook home, like a shared company
addressbook. - It is also possible to specify deviating settings for the extra addressbooks than those used for auto-discovered
addressbooks. This can, for example, be used to add a read-only shared addressbook whereas the discovered addressbooks
are writeable.
Changes to the user interface
The new UI is located directly in roundcube settings as a main section, not a subsection of Preferences
. It is heavily
inspired by roundcube's folder management. The old UI was cumbersome, particularly with multiple addressbooks and
actions that were carried out by setting a checkbox and saving the preferences. The new UI currently has only few extra
features over the old one, but it provides the basis for extensions by new features in the future.
- The localization is only updated for English and German, all other languages just have localized labels for the parts
that still exist in the new interface. If you want to support for you language, please edit the appropriate file in
the localization subdirectory and submit a pull request. The English localization should be taken as master. - Trigger manual addressbook rediscovery from the user interface
- All standard skins (classic, larry, elastic) are supported, but I spent only limited effort for classic and larry,
since these have been removed from the roundcube 1.6 core distribution and it is unclear to what extent they will be
maintained in the future. - It is now possible to configure the initial settings for new addressbooks added to an account (#398). These are used
when a rediscovery is performed and new addressbooks are found. These settings are available in the configuration of
the respective account.
Other changes
- Fix: When setting CardDAV addressbooks for collected recipients/senders from the admin configuration, the setting
might get overridden by user preferences in conjunction with the use of other plugins (that are completely unrelated
to these addressbooks). (Fixes #391) - Enable foreign key constraints for SQLite3 database; note that this affects not only this plugin, but roundcube itself
and other plugins as well. I suppose it should not be a problem and is the standard behavior with other DB backends,
too. - The script
scripts/dropdb.php
can be used to clear all of RCMCardDAV's data from the database. See the uninstall
instructions in INSTALL.md. (Fixes #69)
RCMCardDAV v4.4.6
- Fixes for better handling of incoming vCard4 (Fixes: #411)
- Handle data-URI-style inline PHOTO as used in vCard4
- Use VCard conversion to handle v4 properties such as KIND=group for which extensions are used in v3 vCards
- Fix: Do not attempt to download photos from URIs with unsupported URI scheme (supported are http and https) (#411)
RCMCardDAV v4.4.5
- Fix: Internal server error with PHP8 when searching address fields of contacts (Fixes: #410)
RCMCardDAV v4.4.4
- Fix PHP 8.1 warning on loss of precision by using integer division
- Fix: When setting CardDAV addressbooks for collected recipients/senders from the admin configuration, setting them as
dont_override
is a mandatory action for the admin, otherwise the setting might get overridden by user preferences in conjunction with the use of other plugins (that are completely unrelated to these addressbooks). (Fixes #391) - Fix: Assertion failure in DelayedPhotoLoader (Fixes: #404)
RCMCardDAV v5.0.0-beta1
NOTE: Before upgrading to v5, please read the upgrade notes in README.md.
Changes to the data model
RCMCardDAV never had the notion of an account in its data model. In its early releases, it was necessary for the user to
individually specify each addressbook by its URL. Later on, auto-discovery of all addressbooks on the server was added,
but after the discovery these addressbooks existed as independent objects in the database and RCMCardDAV did not keep
any track that they belong to one account. The addressbooks created from admin presets are an exception to this, as they
are linked by virtue of belonging to the same admin preset. This is why it was possible to add re-discovery (only) for
admin presets in v4.3.
The old data model has a number of issues: Smaller annoyances, such as the user having to edit a changed password in
each addressbook of the account upon password change. But also larger issues, such as the inability to perform a
rediscovery on a user-added account, as for being able to determine new and removed addressbooks, we need to have an
idea of which addressbooks belong to one account. With v5, RCMCardDAV gets accounts in its data model, which maintain
the data common to all addressbooks of an account (particularly the credentials), with each addressbook belonging to an
account.
The database migration scripts try to identify the addressbooks belonging to the same account. For addressbooks created
from an admin preset, this is easy and one account will be created. For user-created addressbooks, an account will be
created for the addressbooks that have a common parent URL (i.e. URL with the last path component removed is the same)
and use the same username. If this heuristic fails, additional accounts will result and the user will have to delete
the extra accounts and perform a rediscovery on the remaining account to have the addressbooks wrongly assigned to other
accounts added to the retained account.
This change also means that it is now possible for RCMCardDAV to store accounts with no addressbooks at all, which is a
state that may exist on the server and lays the basics for possible future features such as adding new addressbooks to
the server from within RCMCardDAV.
Changes in admin settings
- Presets: Replaced option
carddav_name_only
with thename
option, which can define a template for naming
addressbooks. The old naming withcarddav_name_only=false
is equivalent toname='%a (%N)', whereas with
carddav_name_only=truewould correspond to
name='%N'` (#368) - Presets: Removed feature and option
require_always
. It is now replaced by a simplerrequire_always_email
feature
that does the same but only for the email field (#399) - Presets: Addressbooks of a removed preset are provided as readonly until their deletion upon next login. Previously,
these would be provided as writeable addressbooks, as the adminreadonly
setting is no longer available. Note that
the readonly setting is not considered a security option but an interface tweak. To prevent users from modifying an
addressbook, the proper way is to configure this by the permissions on the CardDAV server side. - Presets: Removed option
rediscover_mode
. Rediscovery is now performed based on the new preset option
rediscover_time
, which allows to define a time interval for rediscovery. The same option is also available for
user-created accounts. Rediscovery upon expiry of this interval is performed during login. - It is now possible to have auto-discovered addressbooks and extra addressbooks directly specified by their URL in each
preset. The latter are not subject to the discovery and kept in sync with the preset configuration. Discovery can also
be disabled for a preset by leaving the discovery url of the preset unset. This removes the special semantic of the
URL previously available to specify an addressbook outside the user's addressbook home, like a shared company
addressbook. - It is also possible to specify deviating settings for the extra addressbooks than those used for auto-discovered
addressbooks. This can, for example, be used to add a read-only shared addressbook whereas the discovered addressbooks
are writeable.
Changes to the user interface
The new UI is located directly in roundcube settings as a main section, not a subsection of Preferences
. It is heavily
inspired by roundcube's folder management. The old UI was cumbersome, particularly with multiple addressbooks and
actions that were carried out by setting a checkbox and saving the preferences. The new UI currently has only few extra
features over the old one, but it provides the basis for extensions by new features in the future.
- The localization is only updated for English and German, all other languages just have localized labels for the parts
that still exist in the new interface. If you want to support for you language, please edit the appropriate file in
the localization subdirectory and submit a pull request. The English localization should be taken as master. - Trigger manual addressbook rediscovery from the user interface
- All standard skins (classic, larry, elastic) are supported, but I spent only limited effort for classic and larry,
since these have been removed from the roundcube 1.6 core distribution and it is unclear to what extent they will be
maintained in the future. - It is now possible to configure the initial settings for new addressbooks added to an account (#398). These are used
when a rediscovery is performed and new addressbooks are found. These settings are available in the configuration of
the respective account.
Other changes
- Fix: When setting CardDAV addressbooks for collected recipients/senders from the admin configuration, the setting
might get overridden by user preferences in conjunction with the use of other plugins (that are completely unrelated
to these addressbooks). (Fixes #391) - Enable foreign key constraints for SQLite3 database; note that this affects not only this plugin, but roundcube itself
and other plugins as well. I suppose it should not be a problem and is the standard behavior with other DB backends,
too. - The script
scripts/dropdb.php
can be used to clear all of RCMCardDAV's data from the database. See the uninstall
instructions in INSTALL.md. (Fixes #69)
RCMCardDAV v4.4.3
- Properly set and interpret TYPE parameters, especially for TEL (Fixes #390)
- RCMCardDAV now sets the PRODID property when it creates or modifies a vcard
RCMCardDAV v4.4.2
- Revert to a single release tarball. The new approach (compared to 4.4.1) to avoid the issue with conflicting
dependencies between those coming with roundcube and those coming with the RCMCardDAV release tarball is to append the
RCMCardDAV to the end of the autoloader list, so the roundcube dependencies are always tried first. This means if a
library used by RCMCardDAV already comes with roundcube, RCMCardDAV will also use that version of the library. There
is still possible problems left (i.e. package that only comes with roundcube might have a dependency for that an
incompatible version is already included with roundcube). In the end, I don't think there is a clean solution to this
issue. If you want to avoid this mess, don't use the release tarball but install using composer. - No changes to RCMCardDAV itself
RCMCardDAV v4.4.1
- Create release tarballs with a PHP version emulated to 7.1.0 (minimum needed by RCMCardDAV) (Fixes #386)
- No changes to RCMCardDAV itself