Hello everyone,
The following versions of Totara Learn have now been released:
Some of these versions do contain security fixes, and for this reason we strongly recommend upgrading. Each release also includes various bug fixes and improvements.
It is also recommended to read the TL-36400 changelog directly below, which introduces a config setting that will affect users installing and upgrading to versions 17.4 or higher
Kind regards
Release Team
Release 17.4 (28th February 2023):
Important: TL-36400 Fixed that unauthenticated users can view upgrade pages and trigger upgrade This patch disables web upgrade on sites that do not have an upgrade key configured. In order to upgrade to this and future versions of Totara, please use the CLI upgrade script (php server/admin/cli/upgrade.php) or set a value for `$CFG->upgradekey` in config.php. You will need to enter the same key in the web upgrade form. Note: This upgrade key will also be required for new installs run via the web interface. Security issues: TL-35501 Limited the amount of results for message area user search external function To mitigate the risk of denial of service, changes have been made to the external function 'core_message_data_for_messagearea_search_users' regarding the validation of the optional 'limitnum' parameter: - The maximum possible value for the parameter is set to a default of 20, but can be overridden by setting a different value in config.php for $CFG->message_area_search_max_limitnum. Please make use of this if you need to call this external function with a 'limitnum' parameter greater than 20. - A value of integer zero (the default when the parameter was omitted) will not return unlimited results anymore. It will return up to the configured maximum amount. - Null value, negative values and values above the configured maximum amount will lead to an error. TL-36120 Fixed Self-XSS possibility when dragging and dropping files in the file upload dialogue Improvements: TL-36327 Improved the gap between course multi-select custom fields Bug fixes: TL-35226 Fixed an issue where changes to language strings in countries.php were not being saved if the key contained upper-case letters TL-35259 Fixed the 'Time to complete (since start date)' column in the 'Course Completion' report source not being calculated correctly TL-35521 Fixed being able to bypass sequential navigation in quizzes using web services TL-35706 Allowed user with 'addattendees' capability, but not 'signup' capability, to add seminar attendees Previously both capabilities were required to book or waitlist other users on seminars. TL-35728 Prevented notification event processing task from blocking other tasks Previously, the 'Queue event scheduled task' (\totara_notification\task\process_event_queue_task) was marked as a blocking task. This meant that it would need to complete before other scheduled or adhoc tasks could run. It is safe to run other tasks while processing notifiable events, so we have removed the blocking flag from this task. TL-35859 Fixed SCORM activity allowing more than the maximum number of attempts in some cases The way that the number of attempts is counted when a learner opens a SCORM activity is determined by the 'Force new attempt' setting. If 'Force new attempt' is set to 'Always', or if 'Force new attempt' is set to 'No' and the user tries a new attempt, the number of attempts that have been made is simply the learner's total number of attempts to date. However, if 'Force new attempt' is set to 'When previous attempt completed, passed or failed', then only completed attempts should count as attempts that have been made. Previously, all attempts were counted in this case. Also, the displayed number of attempts remaining in the table of contents was computed incorrectly when 'Force new attempt' was set to 'Always' or 'No', because only completed attempts were counted. All attempts are counted now. Finally, the method of determining completed attempts has been refactored to work correctly for SCORM 2004. Previously, failed attempts did not count as completed. TL-36168 Fixed the format not being applied to Weka content on bold, hashtags, mentions, or placeholders TL-36169 Fixed tenant users with job assignment capabilities being able to see members of other tenants TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36402 Fixed formatting (including multi lang compatibility) for notification placeholders The formatting (including multi lang compatibility) of the following placeholders have been fixed: * Workspace full_name * Course name * Activity name (including Seminar) * Seminar event details * Performance activity name * User description TL-36431 Fixed inline seminar editing updating calendar entries for all seminar events TL-36476 Fixed incorrect formatting of the [all_sessions] placeholder in seminar notifications TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases. TL-36554 Fixed redis caching issue when using Redis with read-only replication and no compression A bug was introduced in 17.3 with the addition of the compression option which affects sites making use of Redis read-only replicas. Sites configured in this way will receive fatal errors due to a lack of serialization on the replicas. TL-36631 Fixed issue with program message paragraph formatting not being maintained during the upgrade When the message contains line breaks, it must be considered a separate paragraph. Otherwise, the line break won't work with the weka editor after the migration. Technical changes: TL-36430 Added a new hook 'auth_enable' to allow watchers to interrupt the enabling of a specific auth plugin Adds a new core hook which can be used by third party plugins to prevent specific auth plugins from being enabled, and optionally provide a reason which will be displayed to the user if they try to enable one. Library updates: TL-35875 Upgraded library Video.js to 7.21.1
Release 16.10 (28th February 2023):
Security issues: TL-35501 Limited the amount of results for message area user search external function To mitigate the risk of denial of service, changes have been made to the external function 'core_message_data_for_messagearea_search_users' regarding the validation of the optional 'limitnum' parameter: - The maximum possible value for the parameter is set to a default of 20, but can be overridden by setting a different value in config.php for $CFG->message_area_search_max_limitnum. Please make use of this if you need to call this external function with a 'limitnum' parameter greater than 20. - A value of integer zero (the default when the parameter was omitted) will not return unlimited results anymore. It will return up to the configured maximum amount. - Null value, negative values and values above the configured maximum amount will lead to an error. TL-36120 Fixed Self-XSS possibility when dragging and dropping files in the file upload dialogue Improvements: TL-36327 Improved the gap between course multi-select custom fields Bug fixes: TL-35226 Fixed an issue where changes to language strings in countries.php were not being saved if the key contained upper-case letters TL-35259 Fixed the 'Time to complete (since start date)' column in the 'Course Completion' report source not being calculated correctly TL-35521 Fixed being able to bypass sequential navigation in quizzes using web services TL-35706 Allowed user with 'addattendees' capability, but not 'signup' capability, to add seminar attendees Previously both capabilities were required to book or waitlist other users on seminars. TL-35728 Prevented notification event processing task from blocking other tasks Previously, the 'Queue event scheduled task' (\totara_notification\task\process_event_queue_task) was marked as a blocking task. This meant that it would need to complete before other scheduled or adhoc tasks could run. It is safe to run other tasks while processing notifiable events, so we have removed the blocking flag from this task. TL-35859 Fixed SCORM activity allowing more than the maximum number of attempts in some cases The way that the number of attempts is counted when a learner opens a SCORM activity is determined by the 'Force new attempt' setting. If 'Force new attempt' is set to 'Always', or if 'Force new attempt' is set to 'No' and the user tries a new attempt, the number of attempts that have been made is simply the learner's total number of attempts to date. However, if 'Force new attempt' is set to 'When previous attempt completed, passed or failed', then only completed attempts should count as attempts that have been made. Previously, all attempts were counted in this case. Also, the displayed number of attempts remaining in the table of contents was computed incorrectly when 'Force new attempt' was set to 'Always' or 'No', because only completed attempts were counted. All attempts are counted now. Finally, the method of determining completed attempts has been refactored to work correctly for SCORM 2004. Previously, failed attempts did not count as completed. TL-36168 Fixed the format not being applied to Weka content on bold, hashtags, mentions, or placeholders TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36402 Fixed formatting (including multi lang compatibility) for notification placeholders The formatting (including multi lang compatibility) of the following placeholders have been fixed: * Workspace full_name * Course name * Activity name (including Seminar) * Seminar event details * Performance activity name * User description TL-36431 Fixed inline seminar editing updating calendar entries for all seminar events TL-36476 Fixed incorrect formatting of the [all_sessions] placeholder in seminar notifications TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases. TL-36631 Fixed issue with program message paragraph formatting not being maintained during the upgrade When the message contains line breaks, it must be considered a separate paragraph. Otherwise, the line break won't work with the weka editor after the migration. Library updates: TL-35875 Upgraded library Video.js to 7.21.1
Release 15.16 (28th February 2023):
Security issues: TL-36120 Fixed Self-XSS possibility when dragging and dropping files in the file upload dialogue Improvements: TL-36327 Improved the gap between course multi-select custom fields Bug fixes: TL-35226 Fixed an issue where changes to language strings in countries.php were not being saved if the key contained upper-case letters TL-35521 Fixed being able to bypass sequential navigation in quizzes using web services TL-35706 Allowed user with 'addattendees' capability, but not 'signup' capability, to add seminar attendees Previously both capabilities were required to book or waitlist other users on seminars. TL-35728 Prevented notification event processing task from blocking other tasks Previously, the 'Queue event scheduled task' (\totara_notification\task\process_event_queue_task) was marked as a blocking task. This meant that it would need to complete before other scheduled or adhoc tasks could run. It is safe to run other tasks while processing notifiable events, so we have removed the blocking flag from this task. TL-35859 Fixed SCORM activity allowing more than the maximum number of attempts in some cases The way that the number of attempts is counted when a learner opens a SCORM activity is determined by the 'Force new attempt' setting. If 'Force new attempt' is set to 'Always', or if 'Force new attempt' is set to 'No' and the user tries a new attempt, the number of attempts that have been made is simply the learner's total number of attempts to date. However, if 'Force new attempt' is set to 'When previous attempt completed, passed or failed', then only completed attempts should count as attempts that have been made. Previously, all attempts were counted in this case. Also, the displayed number of attempts remaining in the table of contents was computed incorrectly when 'Force new attempt' was set to 'Always' or 'No', because only completed attempts were counted. All attempts are counted now. Finally, the method of determining completed attempts has been refactored to work correctly for SCORM 2004. Previously, failed attempts did not count as completed. TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36402 Fixed formatting (including multi lang compatibility) for notification placeholders The formatting (including multi lang compatibility) of the following placeholders have been fixed: * Workspace full_name * Course name * Activity name (including Seminar) * Seminar event details * Performance activity name * User description TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases. TL-36631 Fixed issue with program message paragraph formatting not being maintained during the upgrade When the message contains line breaks, it must be considered a separate paragraph. Otherwise, the line break won't work with the weka editor after the migration. Library updates: TL-35875 Upgraded library Video.js to 7.21.1
Release 14.21 (28th February 2023):
Security issues: TL-36120 Fixed Self-XSS possibility when dragging and dropping files in the file upload dialogue Bug fixes: TL-35226 Fixed an issue where changes to language strings in countries.php were not being saved if the key contained upper-case letters TL-35521 Fixed being able to bypass sequential navigation in quizzes using web services TL-35706 Allowed user with 'addattendees' capability, but not 'signup' capability, to add seminar attendees Previously both capabilities were required to book or waitlist other users on seminars. TL-35728 Prevented notification event processing task from blocking other tasks Previously, the 'Queue event scheduled task' (\totara_notification\task\process_event_queue_task) was marked as a blocking task. This meant that it would need to complete before other scheduled or adhoc tasks could run. It is safe to run other tasks while processing notifiable events, so we have removed the blocking flag from this task. TL-35859 Fixed SCORM activity allowing more than the maximum number of attempts in some cases The way that the number of attempts is counted when a learner opens a SCORM activity is determined by the 'Force new attempt' setting. If 'Force new attempt' is set to 'Always', or if 'Force new attempt' is set to 'No' and the user tries a new attempt, the number of attempts that have been made is simply the learner's total number of attempts to date. However, if 'Force new attempt' is set to 'When previous attempt completed, passed or failed', then only completed attempts should count as attempts that have been made. Previously, all attempts were counted in this case. Also, the displayed number of attempts remaining in the table of contents was computed incorrectly when 'Force new attempt' was set to 'Always' or 'No', because only completed attempts were counted. All attempts are counted now. Finally, the method of determining completed attempts has been refactored to work correctly for SCORM 2004. Previously, failed attempts did not count as completed. TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36402 Fixed formatting (including multi lang compatibility) for notification placeholders The formatting (including multi lang compatibility) of the following placeholders have been fixed: * Workspace full_name * Course name * Activity name (including Seminar) * Seminar event details * Performance activity name * User description TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases. TL-36631 Fixed issue with program message paragraph formatting not being maintained during the upgrade When the message contains line breaks, it must be considered a separate paragraph. Otherwise, the line break won't work with the weka editor after the migration. Library updates: TL-35875 Upgraded library Video.js to 7.21.1
Release 13.29 (28th February 2023):
Security issues: TL-36120 Fixed Self-XSS possibility when dragging and dropping files in the file upload dialogue Bug fixes: TL-35226 Fixed an issue where changes to language strings in countries.php were not being saved if the key contained upper-case letters TL-35521 Fixed being able to bypass sequential navigation in quizzes using web services TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases.
Release 12.51 (28th February 2023):
Bug fixes: TL-36246 Decreased the memory usage by send_messages_task script to avoid out-of-memory errors If the send_messages_task script was failing due to out-of-memory before, it will send all previously-queued notifications at once after this fix. TL-36528 Made sure new job relationship upgrade steps are applied if missed previously A previous ticket, TL-33602, increased the version number for the totara_job plugin incorrectly to the same version on all affected branches (11 and higher). This can result in some upgrade steps (adding new perform relationships) being skipped during upgrade to Totara 13 or 16. This patch ensures the missing upgrade steps are run and the missing relationships are added in all cases.