* The fields for the ID number-related indexes that were created for
the question and question_categories tables in MDL-62708 should not
be in comma-separated strings.
* The fields for the ID number-related indexes that were created for
the messages and message_user_actions tables in MDL-36941 should not
be in comma-separated strings.
The message_contact_blocked and message_contact_unblocked
events were deprecated. The reason being that you will be
able to block and unblock any user, regardless if they are
a contact or not. This information is also now stored in a
separate DB table.
Remove any duplicate rows - from now on adding contacts just requires 1 row.
The person who made the contact request (userid) and the person who approved
it (contactid). Upgrade the table so that the first person to add the contact
was the one who made the request.
Allow NULL values for timecreated in both message_contacts
and message_users_blocked because there is existing data
that has no timecreated value associated with it.
A new optional parameter $context has been added to the
core_group::groups_get_members_join() function.
Besides, some core_group methods now accept -1 (USERSWITHOUTHGROUP) for
the groupid field.
Whenever the role_capabilities table is changed, we need to remember
to clear the cache for the role(s) being modified. This is far simpler
when all of those changes happen in a single file, i.e. accesslib.php,
allowing other parts of the application to use the public functions
without requiring knowledge of the cache internals.
Thanks to MDL-49398, we can separate the combined user session and role
definition cache clearing function into two separate functions. At the
same time, we want to identify and remove mark_dirty() calls that were
added for role definition changes but were incorrectly left behind.
Change highlights:
- Remove unnecessary mark_dirty() calls performed after
assign_capability(), unassign_capability(), delete_role(),
deleted contexts, brand new contexts
- Move role definition cache clear from the user-centric
accesslib_clear_all_caches() to the newly created,
role-dedicated accesslib_reset_role_cache()