Hello everyone,
The following versions of Totara Learn have now been released:
- Release 13.7
- Release 12.30
- Release 11.39
- Release 10.44
- Release 9.54
- Release 2.9.56
- Release 2.7.62
- Release 2.6.79
- Release 2.5.83
- Release 2.4.78
- Release 2.2.79
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- Alex Morris at Catalyst - TL-30281
- Brad Simpson at Kineo USA - TL-30186, TL-30262
- Julie Prescott at Innovate-Solutions - TL-30150
Kind regards,
David Curry
Release 13.7 (28th April 2021):
Security issues: TL-30567 Fixed XSS vulnerability exposed through the redirect_uri parameter LTI authentication TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated. Performance improvements: TL-29551 Improved the load times for the 'participants list' within the assignment activity We became aware of an issue within the assignment activity when appearing within a course with hundreds of thousands of enrolled users. It now better manages the situation by only loading required data. TL-30329 Improved the load times for the user profile page by optimising the user profile block While load testing during the Totara 14 QA we became aware of a performance issue on the user profile page that affected all users. Blocks on the page were repeatedly hitting the database for excess information that was not always needed. In situations where the user had a large number of course enrolments the page may take several seconds to load. The poor performing block now makes full use of caching to optimise how it fetches data, and to ensure data is only fetched once regardless how many instances of the block are on the page. We also added page limiting to the enrolment information fetched for the user, limiting it to just the amount of data that is required to display the page. Improvements: TL-10392 Improved how scheduled reports are handled when they do not contain any data Previously empty reports were still generated, saved to disk, and sent to users. They are now generated, and if the result is empty, no longer saved to disk or sent to users. TL-29554 Rephrased the options for the 'email display' profile setting to better reflect actual behaviour TL-29615 Allowed all theme images to be updated on a per tenant basis Added the following images to the tenant customisable theme settings: # Course image # Program image # Certification image # Resource image # Workspace image A breaking change was introduced with this work. Any customisation developer who has extended core\theme\file\theme_file and has defined or overridden the get_default_context() method should review their implementation. That function no longer needs to be defined unless something very custom is being done. If it had been inadvertently overridden or defined tenant files may not show correctly nor will they be configurable within tenants. If you are unsure please reach out to us via our help desk. TL-29959 Added a new 'Currently enrolled?' column and filter to the 'Course membership' reportbuilder report TL-30087 Sorted catalogue filter options by case insensitive natural order instead of binary comparison order TL-30140 Fixed the display logic for ExpandCell of Table component to allow not-showing chevrons in non-header rows Bug fixes: TL-29751 Removed the option to add blocks on the my appraisal page It is not possible to add blocks to this page but inadvertently, when editing was turned on via another page, the option to add blocks was being displayed. This has now been removed. TL-29836 Reset seminar signup fields when signup is reused to prevent notifications from being sent to wrong user When a user signs up for a seminar that requires manager approval, and their request is denied (or they cancel), and then they sign up again later, the same database record is used. Previously, the manager and job assignment fields were not cleared when the signup was reused, which could result in manager request notifications being sent to the wrong manager. This condition only occurs when 'Users Select Manager' was enabled at the time the signup record was created or reused. These fields are now cleared whenever a signup is reused. However, there is no way to detect and remove the condition in existing seminar signups, so the problem could persist for signups that are currently in use. TL-29844 Added an upgrade step to add missing link to contexts for some engage resources TL-29993 Updated the create workspace button so it is hidden when a workspace cannot be created TL-30009 Fixed some reportbuilder graph labels not being displayed as expected Previously when there were a small number of labels on the x-axis of a graph and at certain graph widths, some labels would disappear. Now the x-axis labels are always displayed. TL-30011 Ensured trainer notifications in the feedback module correctly respect the 'Separate Groups' groups setting. This change ensures, when 'Separate Groups' is set, that trainers within a group are not sent notifications when learners who belong to no groups complete the feedback. TL-30050 Allowed more than 20 items to be displayed when adding resources to a workspace by adding a "Load more" button TL-30075 Fixed the "Email address" label on the forgotten password page so that it no longer splits across 2 lines TL-30079 State is now preserved when resizing core re-usable Layout components The main regions of two layout components did not have unique keys assigned, causing non-managed state to be thrown away when the browser is resized and the layout is re-rendered. This no longer happens. TL-30086 Fixed the display of seminar activity filters on the calendar view screen Previously seminar filters were horizontally aligned and overflowing making them appear unstyled. They are now vertically aligned and properly spaced. TL-30089 Fixed loading of more than 20 items in other user's library view TL-30090 Ensured date fields in Totara forms retain data correctly after a validation failure TL-30104 Ensured duplicate Program or Certification assignment messages are not sent for a user TL-30135 Fixed incorrect accessibility warning when seeing who liked a resource TL-30144 Fixed competency achievement record migration running out of memory on larger sites TL-30150 Declared a missing value in core_course_renderer::course_section_cm_availability() TL-30151 Fixed a bug that prevented old SCORM activities from displaying in the Totara Mobile app TL-30180 Fixed the formatting of program and certification summaries on the required leading page TL-30186 Fixed some Atto button icons taking global button foreground colour TL-30196 Fixed deleting users with pending subject instances or view-only participant instances Previously an exception got thrown if a user gets deleted who has pending subject instances or view-only participant instances in an activity. This patch fixes this and will delete instead of closing pending subject instances. View-only participant instances won't be touched as they do not have a closed state. TL-30198 Fixed typo in URL causing error when using the 'Site policy records' embedded report TL-30217 The correct context is now referred to in explanation text on the audience assign roles page Prior to this change when on the assign roles tab for an audience text on the page would refer to the system context when explaining what was happening regardless of whether it was a system audience or a category audience. This has now been fixed and the correct context is referred to in the explanation text. TL-30222 Fixed the responsive display of SVG course icons on narrow screens TL-30225 Fixed adding default coursesperpage configuration setting when catalogtype is set In the past when setting the catalogtype in config.php to anything but 'moodle', the default configuration setting for 'coursesperpage' was not created. This resulted in errors on pages that rely on $CFG->coursesperpage to exist. This patch ensures that the 'coursesperpage' configuration setting will always exist regardless of the catalogtype setting. TL-30249 Fixed the users' language not being explicitly set for request made by the Totara Mobile app Prior to this patch the session language was being set to default, leading to some unexpected behaviour in areas like access restrictions on course modules. This has been rectified so that mobile sessions are always created with the user's preferred language. TL-30253 Ensured the correct context used in the Feedback activity edit_form for templates This has changed the context for the 'createpublictemplate' capability check when specifying if a template should be public from system to module. TL-30262 Fixed alignment of text when viewing a single answer lesson page TL-30273 Improved handling of modal outer clicks to prevent modal closure when a popup is closed TL-30277 Fixed the meatball menu within Weka nodes that have children TL-30280 Fixed an unknown field error in Perform when reporting on anonymous activity sections TL-30281 Fixed the favicon resolver to resolve a protocol relative URL TL-30292 Added missing language strings in the admin notification sent when OAuth2 tokens need to be refreshed TL-30347 Fixed SQL error reporting for PostgreSQL Prior to this fix the last_error value within PostgreSQL would be inadvertently lost if a savepoint rollback was triggered. We now ensure that the last_error value persists through the triggered rollback. TL-30483 Moved bot entry login page out of classes folder to not expose any entry file in classes folder because users do not have access to any files in class folder TL-30489 Fixed error when upgrading completion evidence that do not have an evidence type TL-30572 Broken PHP polyfills were replaced by Symfony PHP polyfills TL-30575 Fix ventura appearance links and settings Ventura specific admin links are no longer available when current selected theme is not Ventura. TL-30644 Fixed weka editor user mention query returning users from other tenants Tui front end framework: TL-30336 Updated Tui NPM dependencies The NPM libraries Tui depends upon have all been updated to ensure we have the latest security and bug fixes. They were at the same time switched over the exact versions to ensure consistent builds across the many development, testing, and automation environments that we work with. Contributions: * Alex Morris at Catalyst - TL-30281 * Brad Simpson at Kineo USA - TL-30186, TL-30262 * Julie Prescott at Innovate-Solutions - TL-30150
Release 12.30 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated. Performance improvements: TL-29551 Improved the load times for the 'participants list' within the assignment activity We became aware of an issue within the assignment activity when appearing within a course with hundreds of thousands of enrolled users. It now better manages the situation by only loading required data. Improvements: TL-30087 Sorted catalogue filter options by case insensitive natural order instead of binary comparison order Bug fixes: TL-29751 Removed the option to add blocks on the my appraisal page It is not possible to add blocks to this page but inadvertently, when editing was turned on via another page, the option to add blocks was being displayed. This has now been removed. TL-29836 Reset seminar signup fields when signup is reused to prevent notifications from being sent to wrong user When a user signs up for a seminar that requires manager approval, and their request is denied (or they cancel), and then they sign up again later, the same database record is used. Previously, the manager and job assignment fields were not cleared when the signup was reused, which could result in manager request notifications being sent to the wrong manager. This condition only occurs when 'Users Select Manager' was enabled at the time the signup record was created or reused. These fields are now cleared whenever a signup is reused. However, there is no way to detect and remove the condition in existing seminar signups, so the problem could persist for signups that are currently in use. TL-30011 Ensured trainer notifications in the feedback module correctly respect the 'Separate Groups' groups setting. This change ensures, when 'Separate Groups' is set, that trainers within a group are not sent notifications when learners who belong to no groups complete the feedback. TL-30090 Ensured date fields in Totara forms retain data correctly after a validation failure TL-30104 Ensured duplicate Program or Certification assignment messages are not sent for a user TL-30150 Declared a missing value in core_course_renderer::course_section_cm_availability() TL-30198 Fixed typo in URL causing error when using the 'Site policy records' embedded report TL-30222 Fixed the responsive display of SVG course icons on narrow screens TL-30281 Fixed the favicon resolver to resolve a protocol relative URL TL-30292 Added missing language strings in the admin notification sent when OAuth2 tokens need to be refreshed Contributions: * Alex Morris at Catalyst - TL-30281 * Julie Prescott at Innovate-Solutions - TL-30150
Release 11.39 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated. Bug fixes: TL-30198 Fixed typo in URL causing error when using the 'Site policy records' embedded report
Release 10.44 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 9.54 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.9.56 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.7.62 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.6.79 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.5.83 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.4.78 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.
Release 2.2.79 (28th April 2021):
Security issues: TL-30568 The mnet authentication keep alive method now follows standards and uses $DB->get_in_or_equal TL-30570 Fixed "Protect user names" configuration not working as expected for unconfirmed users on forgot password page Prior to this patch, the form for forgotten passwords could display error messages revealing the unconfirmed state of self-registering users even though the 'Protect user names' security setting was activated. Also, when the 'Allow accounts with same email' setting was activated, the same form could reveal in an error message that an email was used by multiple users. This patch prevents these error messages from showing when the 'Protect user names' setting is activated.