Hello everyone,
The following versions of Totara Learn have now been released:
- Release 18.4
- Release 17.17
- Release 16.23
- Release 15.29
- Release 14.34
- Release 13.42
- Release 12.61
- Release 11.61
- Release 10.63
- Release 9.69
- Release 2.9.66
- Release 2.7.71
- Release 2.5.90
- Release 2.2.85
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes various bug fixes and improvements.
Kind regards Release Team
Release 18.4 (19th March 2024):
Important:
TL-39838 Fixed question bank text not being cleaned on output
In Totara 13 the consistent cleaning functionality was applied, which will clean
content on the site to prevent issues such as cross-site scripting. This
resulted in a change of behaviour in certain areas that are documented in our
developer
docs: https://totara.atlassian.net/wiki/spaces/DEV/pages/121185890/Totara+13+changes+to+content+sanitisation.
This change fixes a problem where question text was bypassing the content
filtering system, even if consistent cleaning was enabled.
If your quiz questions or question banks have custom HTML in them, the data may
be lost on the next save. Please check any quiz questions if they need to be
modified to work with consistent cleaning.
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Performance improvements:
TL-39814 Reverted a previous improvement that caused performance degradation in visibility queries on large datasets
Bug fixes:
TL-36940 Fixed Engage playlist and resource navigation to remember more than one level of history
TL-37252 Included approval workflow assignment ID number in the fields which get updated when an organisation, position, or audience changes
The approval workflows framework observes change events for the organisations,
positions, and audiences to which assignments are related, and updates those
assignments to match. Previously, just the assignment name was changed. But the
assignment ID number is based on the organisation or position shortname, or the
audience ID number, so this patch ensures they are updated to match. Note that
it is not currently possible to manually change an assignment ID number.
The included upgrade step will sync assignment ID numbers so that they match the
current state of the related organisations, positions, and/or audiences.
TL-38483 Fixed a scenario where users being restored from suspension are no longer members of their tenant audience
Previously when a suspended user’s audiences were purged, it would also remove
them from the tenant audience. Then if the user was then unsuspended they may
not have been returned to their tenant again. The only way to fix it would be to
remove them from the tenant and add them back again on their profile page.
With this change there is a new ‘unsuspend_user’ event, and when it is
triggered the correct tenancies are applied. Previously when unsuspending a user
the suspended event was also triggered, this has been changed so either the
suspend or unsuspend events are triggered.
There is a new script provided that can be run to find and fix any users who are
not in their tenant audience: 'server/admin/cli/fix_orphan_tenant_members.php'.
TL-38582 Fixed notification log report error which was thrown when linked preference was deleted or didn't exist
TL-38748 Fixed a warning showing in the scheduled tasks output when using Redis
TL-39056 Fixed accounts created via 'Self-registration with approval' sometimes being auto-confirmed by third-party email systems
When an account is created with the ‘Self-registration with approval’
plugin, an email is sent to the account with a link the user must click to
confirm the account. In some cases the email system would scan links in emails
and preload them, in this instance confirming the account. When the user would
then click the link, Totara would show an error as the account had already been
confirmed.
With this fix the link sent in the email will open a page where the user must
press a button to confirm their account.
TL-39160 Fixed user interest tags not obeying multitenancy visibility rules
TL-39163 Fixed guest autologin not working on dashboards
TL-39182 Centralised notifications can now be disabled by a user in their notification preferences
Centralised notifications will now correctly adhere to the 'emailstop' setting.
This setting can now be set on the notification preference page for a user.
This also prevents notifications from being sent unexpectedly when adding users
via HR import with ‘emailstop’ set.
TL-39197 Fixed tenant-related notifications not appearing in notification logs for administrators
This was achieved by bypassing user content restrictions for site
administrators. As a result, site administrators can now view data relating to
users from all tenants in reports.[evergreen-20240319]This was achieved by
changing the user content restrictions to allow system users (those not
belonging to a tenant) to view data relating to users from all tenants in
reports. This brings user content restrictions for system users in line with
documentation and other functionality.[evergreen-20240319]
TL-39230 Fixed the seminar fatal error on updating settings when using 'Require event over for' setting
TL-39271 Changed seminar reservation cancelled notification to send to affected managers only
Before this change, if a manager’s reservations were cancelled, a notification
was sent to all managers who have reservations. Now it is only sent to the
affected manager. Third-party recipients will now receive one notification for
each affected manager.
TL-39398 Fixed that Pathway format course triggers three course_viewed events
Removed trigger of course_viewed event from get_course_completion_for_header and
get_course_navigation queries for the Pathway course format since they were
creating additional course_viewed events but they didn’t allow users to view
course contents.
TL-39426 Moved seminar virtual room URL from location to description in iCal
When a seminar room contains a virtual room link, the link was being included in
the LOCATION property of the iCal email attachments. This caused problems in
some calendars, where clicking the location would attempt to find a place on a
map using the URL as text. Now the virtual room URLs are added to the iCal
DESCRIPTION and can be clicked to open the virtual meeting.
TL-39429 Fixed a problem when the 'User reports to any of these users' dynamic audience rule would show an error
In a scenario where the ‘User reports to any of these users’ dynamic
audience rule was applied and there were no users with a matching job
assignment, an error could have appeared in the scheduled tasks job.
TL-39511 Fixed locale not being applied correctly in approval workflows date fields
TL-39530 Allowed admins to change activity completion method for activities requiring a passing grade
TL-39548 Improved keyboard navigation to block sidebars
TL-39574 Fixed wrong progress sorting order for the Totara Goals status report
TL-39576 Fixed HTMLPurifier stripping ARIA attributes from content during cleaning
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
TL-39614 Moved results information to a heading above the report results tables
Previously the number of found rows in different kinds of reports were
inconsistently displayed. With this change the number of records loaded now
shows in a heading above the report table.
All existing pages embedding reports have been updated. Any custom code
embedding reports need to be manually updated to reflect this.
TL-39670 Fixed an error when adding an external LTI tool with PHP 8.0 or higher
Previously, adding an external LTI tool with Totara running on PHP 8.0 or higher
could result in an error under certain conditions, related to the
lti_is_cartridge() check. This patch fixes the problem.
TL-39699 Fixed placeholder failure in Course Due Date course notification during audience assignment
TL-39786 Fixed user profile blocks relying on expected autoincrement IDs
TL-39808 Added lang string replacement to the application form preview in approval workflows
Previously approval forms would show the lang string keys when previewing. This
has now been updated to replace the lang string keys with their corresponding
values.
TL-39843 Fixed links to tel and sms protocols being removed by HTMLPurifier during cleaning
TL-39852 Fixed sections in topic format not having the correct role for screen readers
TL-39859 Fixed dates not translating correctly on Windows servers
TL-39904 Fixed Workspace Owner and Workspace creator roles having no context level set
TL-39914 Addressed an issue where view-only participants couldn't preview Totara goals within a performance activity
Tui front end framework:
TL-37951 Updated WorkspaceDiscussionTab.vue to ignore errors in fetchMore queries if the component has been unmounted
This is a workaround for an error that occurs when a fetchMore apollo query
returns after the component has been unmounted. This only happens with the
fetchMore method so is likely an issue with vue apollo.
TL-39926 Fixed Tui checkboxes having double labels when used in Uniform
Release 17.17 (19th March 2024):
Important:
TL-39838 Fixed question bank text not being cleaned on output
In Totara 13 the consistent cleaning functionality was applied, which will clean
content on the site to prevent issues such as cross-site scripting. This
resulted in a change of behaviour in certain areas that are documented [in our
developer docs: https://totara.atlassian.net/wiki/spaces/DEV/pages/121185890/Totara+13+changes+to+content+sanitisation.
This change fixes a problem where question text was bypassing the content
filtering system, even if consistent cleaning was enabled.
If your quiz questions or question banks have custom HTML in them, the data may
be lost on the next save. Please check any quiz questions if they need to be
modified to work with consistent cleaning.
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Performance improvements:
TL-39814 Reverted a previous improvement that caused performance degradation in visibility queries on large datasets
Improvements:
TL-37335 Remove toast from atto editor auto save on draft.
Bug fixes:
TL-36940 Fixed Engage playlist and resource navigation to remember more than one level of history
TL-37252 Included approval workflow assignment ID number in the fields which get updated when an organisation, position, or audience changes
The approval workflows framework observes change events for the organisations,
positions, and audiences to which assignments are related, and updates those
assignments to match. Previously, just the assignment name was changed. But the
assignment ID number is based on the organisation or position shortname, or the
audience ID number, so this patch ensures they are updated to match. Note that
it is not currently possible to manually change an assignment ID number.
The included upgrade step will sync assignment ID numbers so that they match the
current state of the related organisations, positions, and/or audiences.
TL-38483 Fixed a scenario where users being restored from suspension are no longer members of their tenant audience
Previously when a suspended user’s audiences were purged, it would also remove
them from the tenant audience. Then if the user was then unsuspended they may
not have been returned to their tenant again. The only way to fix it would be to
remove them from the tenant and add them back again on their profile page.
With this change there is a new ‘unsuspend_user’ event, and when it is
triggered the correct tenancies are applied. Previously when unsuspending a user
the suspended event was also triggered, this has been changed so either the
suspend or unsuspend events are triggered.
There is a new script provided that can be run to find and fix any users who are
not in their tenant audience: 'server/admin/cli/fix_orphan_tenant_members.php'.
TL-38582 Fixed notification log report error which was thrown when linked preference was deleted or didn't exist
TL-38748 Fixed a warning showing in the scheduled tasks output when using Redis
TL-39056 Fixed accounts created via 'Self-registration with approval' sometimes being auto-confirmed by third-party email systems
When an account is created with the ‘Self-registration with approval’
plugin, an email is sent to the account with a link the user must click to
confirm the account. In some cases the email system would scan links in emails
and preload them, in this instance confirming the account. When the user would
then click the link, Totara would show an error as the account had already been
confirmed.
With this fix the link sent in the email will open a page where the user must
press a button to confirm their account.
TL-39160 Fixed user interest tags not obeying multitenancy visibility rules
TL-39163 Fixed guest autologin not working on dashboards
TL-39182 Centralised notifications can now be disabled by a user in their notification preferences
Centralised notifications will now correctly adhere to the 'emailstop' setting.
This setting can now be set on the notification preference page for a user.
This also prevents notifications from being sent unexpectedly when adding users
via HR import with ‘emailstop’ set.
TL-39197 Fixed tenant-related notifications not appearing in notification logs for administrators
This was achieved by bypassing user content restrictions for site
administrators. As a result, site administrators can now view data relating to
users from all tenants in reports.[evergreen-20240319]This was achieved by
changing the user content restrictions to allow system users (those not
belonging to a tenant) to view data relating to users from all tenants in
reports. This brings user content restrictions for system users in line with
documentation and other functionality.[evergreen-20240319]
TL-39271 Changed seminar reservation cancelled notification to send to affected managers only
Before this change, if a manager’s reservations were cancelled, a notification
was sent to all managers who have reservations. Now it is only sent to the
affected manager. Third-party recipients will now receive one notification for
each affected manager.
TL-39426 Moved seminar virtual room URL from location to description in iCal
When a seminar room contains a virtual room link, the link was being included in
the LOCATION property of the iCal email attachments. This caused problems in
some calendars, where clicking the location would attempt to find a place on a
map using the URL as text. Now the virtual room URLs are added to the iCal
DESCRIPTION and can be clicked to open the virtual meeting.
TL-39429 Fixed a problem when the 'User reports to any of these users' dynamic audience rule would show an error
In a scenario where the ‘User reports to any of these users’ dynamic
audience rule was applied and there were no users with a matching job
assignment, an error could have appeared in the scheduled tasks job.
TL-39548 Improved keyboard navigation to block sidebars
TL-39576 Fixed HTMLPurifier stripping ARIA attributes from content during cleaning
TL-39595 Fixed accessibility issue with single activity course headings
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
TL-39614 Moved results information to a heading above the report results tables
Previously the number of found rows in different kinds of reports were
inconsistently displayed. With this change the number of records loaded now
shows in a heading above the report table.
All existing pages embedding reports have been updated. Any custom code
embedding reports need to be manually updated to reflect this.
TL-39670 Fixed an error when adding an external LTI tool with PHP 8.0 or higher
Previously, adding an external LTI tool with Totara running on PHP 8.0 or higher
could result in an error under certain conditions, related to the
lti_is_cartridge() check. This patch fixes the problem.
TL-39699 Fixed placeholder failure in Course Due Date course notification during audience assignment
TL-39786 Fixed user profile blocks relying on expected autoincrement IDs
TL-39843 Fixed links to tel and sms protocols being removed by HTMLPurifier during cleaning
TL-39852 Fixed sections in topic format not having the correct role for screen readers
TL-39859 Fixed dates not translating correctly on Windows servers
TL-39904 Fixed Workspace Owner and Workspace creator roles having no context level set
Tui front end framework:
TL-37951 Updated WorkspaceDiscussionTab.vue to ignore errors in fetchMore queries if the component has been unmounted
This is a workaround for an error that occurs when a fetchMore apollo query
returns after the component has been unmounted. This only happens with the
fetchMore method so is likely an issue with vue apollo.
TL-39926 Fixed Tui checkboxes having double labels when used in Uniform
Release 16.23 (19th March 2024):
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Bug fixes:
TL-38483 Fixed a scenario where users being restored from suspension are no longer members of their tenant audience
Previously when a suspended user’s audiences were purged, it would also remove
them from the tenant audience. Then if the user was then unsuspended they may
not have been returned to their tenant again. The only way to fix it would be to
remove them from the tenant and add them back again on their profile page.
With this change there is a new ‘unsuspend_user’ event, and when it is
triggered the correct tenancies are applied. Previously when unsuspending a user
the suspended event was also triggered, this has been changed so either the
suspend or unsuspend events are triggered.
There is a new script provided that can be run to find and fix any users who are
not in their tenant audience: 'server/admin/cli/fix_orphan_tenant_members.php'.
TL-38748 Fixed a warning showing in the scheduled tasks output when using Redis
TL-39429 Fixed a problem when the 'User reports to any of these users' dynamic audience rule would show an error
In a scenario where the ‘User reports to any of these users’ dynamic
audience rule was applied and there were no users with a matching job
assignment, an error could have appeared in the scheduled tasks job.
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
TL-39786 Fixed user profile blocks relying on expected autoincrement IDs
Release 15.29 (19th March 2024):
Important:
TL-39838 Fixed question bank text not being cleaned on output
In Totara 13 the consistent cleaning functionality was applied, which will clean
content on the site to prevent issues such as cross-site scripting. This
resulted in a change of behaviour in certain areas that are documented [in our
developer docs: https://totara.atlassian.net/wiki/spaces/DEV/pages/121185890/Totara+13+changes+to+content+sanitisation.
This change fixes a problem where question text was bypassing the content
filtering system, even if consistent cleaning was enabled.
If your quiz questions or question banks have custom HTML in them, the data may
be lost on the next save. Please check any quiz questions if they need to be
modified to work with consistent cleaning.
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Bug fixes:
TL-39429 Fixed a problem when the 'User reports to any of these users' dynamic audience rule would show an error
In a scenario where the ‘User reports to any of these users’ dynamic
audience rule was applied and there were no users with a matching job
assignment, an error could have appeared in the scheduled tasks job.
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
Release 14.34 (19th March 2024):
Important:
TL-39838 Fixed question bank text not being cleaned on output
In Totara 13 the consistent cleaning functionality was applied, which will clean
content on the site to prevent issues such as cross-site scripting. This
resulted in a change of behaviour in certain areas that are documented in our
developer docs.
This change fixes a problem where question text was bypassing the content
filtering system, even if consistent cleaning was enabled.
If your quiz questions or question banks have custom HTML in them, the data may
be lost on the next save. Please check any quiz questions if they need to be
modified to work with consistent cleaning.
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Bug fixes:
TL-39429 Fixed a problem when the 'User reports to any of these users' dynamic audience rule would show an error
In a scenario where the ‘User reports to any of these users’ dynamic
audience rule was applied and there were no users with a matching job
assignment, an error could have appeared in the scheduled tasks job.
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
Release 13.42 (19th March 2024):
Important:
TL-39838 Fixed question bank text not being cleaned on output
In Totara 13 the consistent cleaning functionality was applied, which will clean
content on the site to prevent issues such as cross-site scripting. This
resulted in a change of behaviour in certain areas that are documented [in our
developer docs: https://totara.atlassian.net/wiki/spaces/DEV/pages/121185890/Totara+13+changes+to+content+sanitisation].
This change fixes a problem where question text was bypassing the content
filtering system, even if consistent cleaning was enabled.
If your quiz questions or question banks have custom HTML in them, the data may
be lost on the next save. Please check any quiz questions if they need to be
modified to work with consistent cleaning.
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Bug fixes:
TL-39612 Fixed current filters being forgotten when multiple report table blocks are added to the same page
Release 12.61 (19th March 2024):
Security issues:
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 11.61 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 10.63 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 9.69 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 2.9.66 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 2.7.71 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 2.5.90 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
Release 2.2.85 (19th March 2024):
Security issues:
TL-36056 Added additional check to local URLs params
TL-39347 Fixed authenticated remote code execution vulnerability in block backup and restore
TL-39921 Fixed CSRF vulnerability in XML import for course grades
