This files describes API changes for code that uses the user API.

=== 4.0.8 ===

* External function core_user_external::add_user_private_files() now returns moodle_exception when the user quota is exceeded

=== 4.0.7 ===

* New method `core_user::is_current_user`, useful for components implementing permission callbacks for their preferences
* New `profile_get_user_field` method for returning profile field instance of given type
* The `profile_field_base::is_visible` method now accepts an optional `$context` argument

=== 4.0.6 ===
* Added a new method is_transform_supported() in the profile_field_base class.
  The purpose is to allow the field to be transformed during the export process.
  It has been implemented in the Date/Time data type.

=== 4.0 ===
* External function core_user_external::update_users() will now fail on a per user basis. Previously if one user
  update failed all users in the operation would fail.
* External function core_user_external::update_users() now returns an error code and message to why a user update
  action failed.
* New method `core_user\fields::get_sql_fullname` for retrieving user fullname format in SQL statement
* The `profile_get_custom_field_data_by_shortname` method now accepts an optional parameter to determine whether
  to use case-sensitive matching of the profile field shortname or not (default true)

=== 3.11 ===

* Added new core_user/form_user_selector JS module that can be used as the 'ajax' handler for the autocomplete form
  element implementing the user selector.
* Added new external function core_user_external::search_identity(). The main purpose of this external function is to
  provide data for asynchronous user selectors and similar widgets. It allows to search users matching the given query
  in their name or other available identity fields.

=== 3.9 ===

* The unified filter has been replaced by the participants filter. The following have therefore been deprecated:
  * Library functions:
    * user_get_participants_sql
    * user_get_total_participants
    * user_get_participants
  * Unified filter renderer (core_user_renderer::unified_filter)
  * Unified filter renderable (\core_user\output\unified_filter)
  * Unified filter JavaScript (core_user/unified_filter.js and core_user/unified_filter_datasource.js)
  * Unified filter template (unified_filter.mustache)

=== 3.6 ===

* The following functions have been finally deprecated and can not be used anymore:
  * useredit_update_picture()
* core_user_external::update_user_preferences() now allows to unset existing preferences values.
  If the preference value field is not set, the preference will be unset.
