Hello everyone,
The following versions of Totara Learn have now been released:
- Release 13.6
- Release 12.29
- Release 11.38
- Release 10.43
- Release 9.53
- Release 2.9.55
- Release 2.7.61
- Release 2.6.78
- Release 2.5.82
- Release 2.4.77
- Release 2.2.78
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:
- Wajdi Bshara from Xtractor - TL-29060
Kind regards
Riana Rossouw
Release 13.6 (24th March 2021):
Security issues: TL-29937 Added missing role validation in course enrolment interface TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29940 Backported MDL-70767: Fixed cleanup of feedback answer text to prevent possibility to store XSS and blind SSRF TL-29941 Backported MDL-70668: Prevented user account confirmation without valid secret key An internal function was vulnerable to confirming user accounts with an invalid secret key. The function has been improved to prevent this. All existing places where the function are being used already provided valid secret keys to the function, so did not expose a security vulnerability - this proactive change was made to ensure that it cannot happen in future. TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29948 Backported MDL-67837: Teacher is able to unenrol users without permission during course restore TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29950 Backported MDL-67015: Improved testing around database module group access TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29953 Backported MDL-59293: Fixed checks whether current user can view online users TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides Performance improvements: TL-29733 Added function to get names of enabled editors without having to load them all This function gets the names of all the enabled editors without having to load the editors. Using the new function editors_get_enabled_names() instead of instead of editors_get_enabled() improves performance due to it being used in page navigation. TL-29782 Optimised capability and access control checks when generating the settings navigation structure Improvements: TL-29537 Fixed Tui Date selector input order Tui Date selector input order assumed NZ/UK d-m-Y, it now respects internationalisation TL-29553 Fixed autocomplete default settings used by Tui Forms Tui Forms autocomplete now uses same default as Legacy Forms TL-29616 Converted warning text to info banner in course badges page when start date is in the future TL-29617 Usages of the SCSS @extend directive resulting in excessively large selectors have been removed This improved IE11 developer tools time to open, and reduced overall CSS bundle size dramatically. It is recommended to avoid this directive unless you are extending an SCSS placeholder. TL-29778 Added a new Report Builder column in the 'Assignment submissions' report source which displays the Assignment name with a link to the assignment activity TL-29852 Fixed Ventura theme showing under tenant menu when it is not the current theme TL-30039 Added new hook for altering of cache key in totara_report_graph block Bug fixes: TL-28969 Restored seminar change notifications when only rooms or facilitators have changed TL-29060 Made core_renderer::favicon() always return moodle_url The function was supposed to return string but some code secretly relied on the internal implimentation that it had actually been moodle_url. With this patch, the function now always returns moodle_url. TL-29064 Prevented a second request to accept site policies when using email-based self registration New users are no longer required to accept site policies twice when using email-based self registration. TL-29068 Fixed the tui theme mediator not allowing themes with numbers in their name to load TL-29176 Added an automatic reload of the page when an evidence type selection gets cancelled in the evidence bank Previously when the user selected, then cancelled an evidence type to add to his evidence bank, the selected option was not automatically redisplayed in the list of available evidence types. It was only when the user selected another evidence type or refreshed the page that the correct list of evidence types was displayed. This fix forces a page refresh so that the correct options are displayed. TL-29206 Fixed user data purge for users no longer assigned to programs and certifications Before the fix, if a user was not assigned to a program or certification at the time of a data purge, their completion data was not being deleted. If this completion data is unwanted then a data purge should be reapplied. TL-29274 Fixed typo in totara message task_description string TL-29277 Hid the 'reset profile for all users' button when there are no custom user profiles TL-29307 Fixed tenant parameter validation for fetching styles Fixed styles_debug to correctly interpret the tenant parameter. A bug caused the tenant parameter to be incorrectly interpreted, thus ignoring the tenant parameter and loading site CSS settings instead. TL-29394 Converted 'Required grade' label in 'Course completion' report source to a language string TL-29404 Added notice informing users that updating MS Teams virtual meeting rooms will cause their settings to be reset Due to limitations of the Microsoft Graph API for meeting rooms, it is not currently possible to update a room. In order to work around this limitation, when meeting times are changed the MS Teams virtualmeeting plugin deletes the existing room and creates a new room with the correct times. This patch adds a warning to the seminar event edit screen, so that room creators know to check their meeting settings in Teams after update. TL-29418 Fixed responsiveness of embedded YouTube and Vimeo media Embedded YouTube and Vimeo media are now responsive when there is not enough width to display with their configured size TL-29473 Fixed MS Teams theme so that it inherits some settings from Ventura theme Before patch MS Teams theme inherited only default settings from Ventura theme, so administrators cannot change colors, fonts, etc. Now, any custom CSS setting from Ventura theme will be applied in MS Teams application as well. TL-29480 Fixed recommenders crashes when there is no users or items data Fixed recommenders not being able to provide any recommendations when there is no users, content items (e.g. resources), or interactions exists within any single tenant. TL-29535 Fixed language pack issue when using program notification The German language pack didn't take effect when doing local customisation in a part of Program messages. With this patch, Local Customisation shows the preferred language edited string correctly. TL-29565 Prevented creating job assignment specific subject instances where the job assignment no longer exists TL-29578 Fixed a bug where some videos would no longer be centered, and fixed handling of percentage widths in media plugins TL-29608 Fixed the issue of mixing hidden workspace with setting enable audience-based visibility which show the hidden workspaces to the non member users Prior to the patch, when the global setting Audience-based visibility is enabled, and a hidden workspace was created, then a non member users of that workspace were able to see the workspace. Which it was an actual bug. With this patch applied, the hidden workspace will no respect the setting Audience-based visibility and non member users of the hidden workspace will not be able to see the hidden workspace. TL-29624 Added manager id to the seminar 'Event booking request created' event log TL-29629 Fixed notifications messages formatting Fixed notifications formatting issue when some notifications (mostly Engage related) where sent as single line text instead of being formatted as plain text. TL-29634 Fixed theme panel button colour not applying to non-Tui buttons TL-29664 Fixed seminar 'Sign-up' report 'Booked by' filter TL-29665 Top level tenant course category visibility is synchronised with tenant suspension TL-29667 Fixed dock overlaying main navigation logo on small screens TL-29724 Fixed theme colours not applying properly to navigation on mobile-sized screens TL-29749 Fixed an error when viewing evidence reports that only have the 'Name' column shown TL-29785 Allowed users who have the ability to create programmes or certifications in sub-categories to create them directly from the catalogue Previously, the 'Create program' and 'Create certification' options would only appear for users with the ability to create those learning items at the site level. Creation options are now available for users who can create items in any category or sub-category, even if they cannot create at the site level. TL-29791 Fixed external participants being unable to view files uploaded to static content elements in a performance activity TL-29795 Fixed display of the 'Featured Links' block when using random display of gallery type tiles This resolves an issue where the first tile would always be the same tile and would not be randomised correctly. TL-29800 Fixed the Seminar update instance to skip the calendar update if there is a minor seminar changes Previously if existing seminar is updated without changes it will re-create all calendar entries which takes a lot of time to process it if the seminar has 100+ events. Now it fixed, the calendar entries will be updated if one value of these fields is changed: # Seminar name # Seminar description # Seminar short name # Seminar calendar display settings # Seminar show entry on user's calendar TL-29854 Fixed an overflow issue with the Tui checkbox component TL-29862 Fixed @mention and #hashtag suggestions appearing below the editor in some situations TL-29869 Weka fallback text area is now the same width as the editor was TL-29907 Removed unnecessary recursive method call in perform activity schedule tasks TL-29911 Added missing format_string() for Program & Certification names that are displayed on the Required Learning page TL-29920 Fixed animated gifs on the grid catalogue The catalogue creates previews for learning item images in order to reduce file size and load times. In the case of animated gifs, this was creating a static image of the first frame. Previews will no longer be used for .gif files, allowing them to be animated on the catalogue. TL-29924 Fixed display of the course participants page when the user is not in a group TL-29929 Fixed an edge case where old Uniform/Reform form field errors can stick around when related fields are edited TL-29960 Fixed theme loading in theme settings with minimisation of API changes Previously theme settings relied on the global moodle page object to determine the correct theme to use. This proved to be problematic as the moodle page object is not set up in all scenarios, especially for GraphQL requests. This fix causes the front-end components to pass the theme, set up during the page request, to the API's that needs it in order to load the theme settings. A debugging message will be logged if the theme config parameter is not passed for a specific API and the default config specified theme will be used. To avoid any debugging message, or default theme config being used, always pass theme config where possible to any theme settings API. TL-30045 Fixed exception that could occur with FormScope validators TL-30052 Ensured the selection of available Organisations and Positions are in an alphabetical order when using Self-registration with approval Contributions: * Wajdi Bshara from Xtractor - TL-29060
Release 12.29 (24th March 2021):
Security issues: TL-29937 Added missing role validation in course enrolment interface TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29940 Backported MDL-70767: Fixed cleanup of feedback answer text to prevent possibility to store XSS and blind SSRF TL-29941 Backported MDL-70668: Prevented user account confirmation without valid secret key An internal function was vulnerable to confirming user accounts with an invalid secret key. The function has been improved to prevent this. All existing places where the function are being used already provided valid secret keys to the function, so did not expose a security vulnerability - this proactive change was made to ensure that it cannot happen in future. TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29948 Backported MDL-67837: Teacher is able to unenrol users without permission during course restore TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29950 Backported MDL-67015: Improved testing around database module group access TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29953 Backported MDL-59293: Fixed checks whether current user can view online users TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides Bug fixes: TL-29060 Made core_renderer::favicon() always return moodle_url The function was supposed to return string but some code secretly relied on the internal implimentation that it had actually been moodle_url. With this patch, the function now always returns moodle_url. TL-29064 Prevented a second request to accept site policies when using email-based self registration New users are no longer required to accept site policies twice when using email-based self registration. TL-29206 Fixed user data purge for users no longer assigned to programs and certifications Before the fix, if a user was not assigned to a program or certification at the time of a data purge, their completion data was not being deleted. If this completion data is unwanted then a data purge should be reapplied. TL-29274 Fixed typo in totara message task_description string TL-29535 Fixed language pack issue when using program notification The German language pack didn't take effect when doing local customisation in a part of Program messages. With this patch, Local Customisation shows the preferred language edited string correctly. TL-29578 Fixed handling of percentage widths in media plugins TL-29624 Added manager id to the seminar 'Event booking request created' event log TL-29664 Fixed seminar 'Sign-up' report 'Booked by' filter TL-29785 Allowed users who have the ability to create programmes or certifications in sub-categories to create them directly from the catalogue Previously, the 'Create program' and 'Create certification' options would only appear for users with the ability to create those learning items at the site level. Creation options are now available for users who can create items in any category or sub-category, even if they cannot create at the site level. TL-29800 Fixed the Seminar update instance to skip the calendar update if there is a minor seminar changes Previously if existing seminar is updated without changes it will re-create all calendar entries which takes a lot of time to process it if the seminar has 100+ events. Now it fixed, the calendar entries will be updated if one value of these fields is changed: # Seminar name # Seminar description # Seminar short name # Seminar calendar display settings # Seminar show entry on user's calendar TL-29911 Added missing format_string() for Program & Certification names that are displayed on the Required Learning page Contributions: * Wajdi Bshara from Xtractor - TL-29060
Release 11.38 (24th March 2021):
Security issues: TL-29937 Added missing role validation in course enrolment interface TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29940 Backported MDL-70767: Fixed cleanup of feedback answer text to prevent possibility to store XSS and blind SSRF TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29953 Backported MDL-59293: Fixed checks whether current user can view online users TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides Bug fixes: TL-29060 Made core_renderer::favicon() always return moodle_url The function was supposed to return string but some code secretly relied on the internal implimentation that it had actually been moodle_url. With this patch, the function now always returns moodle_url. TL-29206 Fixed user data purge for users no longer assigned to programs and certifications Before the fix, if a user was not assigned to a program or certification at the time of a data purge, their completion data was not being deleted. If this completion data is unwanted then a data purge should be reapplied. TL-29664 Fixed seminar 'Sign-up' report 'Booked by' filter TL-29694 Ensured marking completion by RPL respects the 'moodle/course:markcomplete' capability Contributions: * Wajdi Bshara from Xtractor - TL-29060
Release 10.43 (24th March 2021):
Security issues: TL-29937 Added missing role validation in course enrolment interface TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29940 Backported MDL-70767: Fixed cleanup of feedback answer text to prevent possibility to store XSS and blind SSRF TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29953 Backported MDL-59293: Fixed checks whether current user can view online users TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 9.53 (24th March 2021):
Security issues: TL-29937 Added missing role validation in course enrolment interface TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29953 Backported MDL-59293: Fixed checks whether current user can view online users TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.9.55 (24th March 2021):
Security issues: TL-29939 Backported MDL-70822: Fixed profile access check when fetching a user's enrolled courses via web service Previously, the external method core_enrol_get_users_courses didn't check for each course that the acting user can view the other user's profile in that course. For courses with "Separate groups" mode and enabled setting "Force group mode", this could lead to visibility of user enrolments via webservice when it should have been hidden. This patch fixes this bug. TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29948 Backported MDL-67837: Teacher is able to unenrol users without permission during course restore TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29951 Backported MDL-65552: Fixed XSS vulnerabilities within activity results block TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.7.61 (24th March 2021):
Security issues: TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.6.78 (24th March 2021):
Security issues: TL-29945 Backported MDL-69378: Fixed upload methods for enrolments TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.5.82 (24th March 2021):
Security issues: TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.4.77 (24th March 2021):
Security issues: TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box TL-29954 Backported MDL-56310 and MDL-65326: Fixed privilege escalation within course when restoring role overrides
Release 2.2.78 (24th March 2021):
Security issues: TL-29943 Backported MDL-69844: Fixed the bulk messaging page for courses not obeying the site-wide user email visibility policy TL-29946 Backported MDL-68486: Fixed arbitrary PHP code execution by site admin via shibboleth configuration TL-29947 Backported MDL-68426: Set a limit on paths length in yui_combo TL-29949 Backported MDL-67782: Added a max length attribute to the personal message input box