Hello everyone,
The following versions of Totara Learn have now been released:
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 17.7 (25th May 2023):
Important:
TL-37398 Fixed incorrect removal of queued Seminar notifications and overridden Seminar notifications
Previously in extremely rare conditions, when a seminar is deleted, queued
unsent notifications and customised notifications belonging to one or more other
Seminar activities in the same course would be incorrectly deleted.
This occurred only when a seminar gets deleted, and the context id of the
seminar being deleted was the same as the start of another seminar context id in
the same course.
The confluence of seminar context id's matching can occur naturally, but will be
exceptionally rare. The larger a site is the less likely this is to occur. It
also requires a Seminar activity to be deleted, and for any matching seminars in
the course to have customised notifications and/or notifications that have been
queued to sent, but not yet sent.
The issue has now been fixed and will no longer occur.
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36718 Fixed activities that should have been hidden due to access restrictions
Activities can have access restrictions which prevent the activity from being
seen by learners until they meet the criteria. On mobile, and the grapql query
which provides the data for mobile, these activities were not being hidden. This
has been fixed. Activities viewed through the web application were not affected.
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Improvements:
TL-33639 Added the 'new tab' icon to the warning links in the confirm activity delete modal
TL-36475 Improved description of Seminar "one email per day" setting
The description of the setting has been improved to indicate that it only
relates to legacy seminar notifications, and describes how attachments are sent
when using centralised notifications. The setting is now hidden when legacy
seminar notifications are disabled.
Bug fixes:
TL-36042 Fixed inaccurate Seminar notification name
The name 'Facilitator sessions details changed' inaccurately described the
behaviour of this notification. The name has been changed to 'Facilitator
sessions date/time changed' to more accurately indicate what event will trigger
sending the notification.
TL-36226 Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
TL-36276 Fixed the display order of custom fields for the personal goals
Correctly aligned the order of goal custom fields to be the same on both the
edit view and the goal details page.
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
TL-36660 Fixed error when configuring audience restrictions on the course section settings form
Before the patch users with the correct capabilities could not add access
restrictions by the audience for a section.
Now adding an access restriction for a section is consistent with adding a
restriction for an activity in the same course which is currently possible.
TL-36826 Changed usages of array_key_exists to property_exists
array_key_exists() will also return {{true}} if {{key}} is a property
defined within an object given as {{{}array{}}}. This behaviour is deprecated
as of PHP 7.4.0, and removed as of PHP 8.0.0.
For such a case, we changed array_key_exists() to property_exists().
TL-36847 Added spacing above the 'Back to audiences' button when editing audience members
TL-36895 Notification preferences and queued notifications belonging to a course are deleted when the course is deleted
Previously when deleting a course all related records in notification_preference
and notifiable_event_queue have not been deleted. This could lead to errors
during cron run as the context for the notification event queue records does not
exist anymore.
This patch cleans up orphaned records during the upgrade and makes sure those
records get deleted during course deletion.
TL-36975 Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters
Previously a character limit for placeholder names in database queries existed.
This was only due for compatibility reasons with Oracle which Totara does not
support. The limit has been removed.
TL-37139 Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
TL-37153 Fixed notifications being sent twice if they were overridden in more than one context
If a notification was created in the higher context (such as at site-level), was
customised in more than one intermediate context (such as both course and
activity contexts) and the related notification event occurred in a lower
context (e.g. extended context from an activity) then the notification system
would send a notification for each of the customisations at the intermediate
levels (e.g. the notifications as they appear in both course and activity). This
has been fixed - now only one notification will be sent, which will use the
properties defined at the lowest context (e.g. activity context in this
example).
TL-37208 Fixed error messages triggered during centralised notification tasks not showing debugging details
When debugging is enabled on the site any error triggered during the run of the
centralised notification scheduled tasks do not contain additional debugging
information.
This has been changed to help identifying problems during the task runs.
TL-37225 Fixed ical attachment not reset between notifications when SMTP session limit greater than 1
Under certain circumstances, it was possible for a seminar notification email to
contain the calendar invitation belonging to another user. This only occurred
when "SMTP session limit" was set to more than 1, two seminar notifications were
processed one after the other within one SMTP session (e.g. if the session limit
was set to 5 then both notifications would need to be processed in the same
batch of 5), the first notification related to a seminar event with only one
session, and the second notification related to an event with more than one
session.
TL-37302 Updated the readme file with the correct MariaDB supported versions
Database upgrades:
TL-36808 Allow memoization for Postgres 14.2 and above.
PostgreSQL 14 introduced memoization as a feature that can improve performance.
However with PostgreSQL versions 14.0 or 14.1 it would cause several Totara
queries to return incorrect results. Because of this a requirement was added for
PostgreSQL 14 that the enable_memoize flag be set to off.
This has been fixed from PostgreSQL 14.2. With this patch in place the
enable_memoize=off setting is only required if you're using PostgreSQL 14.0 or
14.1.
Technical changes:
TL-36403 Added 'mobile_coursecompat' property to the catalog_item GraphQL type, so it could be used in the mobile_findlearning_view_catalog GraphQL query
Library updates:
TL-37326 Updated nyholm/psr7 library to 1.6.1
Release 16.13 (25th May 2023):
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Improvements:
TL-33639 Added the 'new tab' icon to the warning links in the confirm activity delete modal
TL-36475 Improved description of Seminar "one email per day" setting
The description of the setting has been improved to indicate that it only
relates to legacy seminar notifications, and describes how attachments are sent
when using centralised notifications. The setting is now hidden when legacy
seminar notifications are disabled.
Bug fixes:
TL-36042 Fixed inaccurate Seminar notification name
The name 'Facilitator sessions details changed' inaccurately described the
behaviour of this notification. The name has been changed to 'Facilitator
sessions date/time changed' to more accurately indicate what event will trigger
sending the notification.
TL-36226 Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
TL-36276 Fixed the display order of custom fields for the personal goals
Correctly aligned the order of goal custom fields to be the same on both the
edit view and the goal details page.
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
TL-36660 Fixed error when configuring audience restrictions on the course section settings form
Before the patch users with the correct capabilities could not add access
restrictions by the audience for a section.
Now adding an access restriction for a section is consistent with adding a
restriction for an activity in the same course which is currently possible.
TL-36826 Changed usages of array_key_exists to property_exists
array_key_exists() will also return {{true}} if {{key}} is a property
defined within an object given as {{{}array{}}}. This behaviour is deprecated
as of PHP 7.4.0, and removed as of PHP 8.0.0.
For such a case, we changed array_key_exists() to property_exists().
TL-36847 Added spacing above the 'Back to audiences' button when editing audience members
TL-36895 Notification preferences and queued notifications belonging to a course are deleted when the course is deleted
Previously when deleting a course all related records in notification_preference
and notifiable_event_queue have not been deleted. This could lead to errors
during cron run as the context for the notification event queue records does not
exist anymore.
This patch cleans up orphaned records during the upgrade and makes sure those
records get deleted during course deletion.
TL-36975 Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters
Previously a character limit for placeholder names in database queries existed.
This was only due for compatibility reasons with Oracle which Totara does not
support. The limit has been removed.
TL-37139 Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
TL-37153 Fixed notifications being sent twice if they were overridden in more than one context
If a notification was created in the higher context (such as at site-level), was
customised in more than one intermediate context (such as both course and
activity contexts) and the related notification event occurred in a lower
context (e.g. extended context from an activity) then the notification system
would send a notification for each of the customisations at the intermediate
levels (e.g. the notifications as they appear in both course and activity). This
has been fixed - now only one notification will be sent, which will use the
properties defined at the lowest context (e.g. activity context in this
example).
TL-37208 Fixed error messages triggered during centralised notification tasks not showing debugging details
When debugging is enabled on the site any error triggered during the run of the
centralised notification scheduled tasks do not contain additional debugging
information.
This has been changed to help identifying problems during the task runs.
TL-37225 Fixed ical attachment not reset between notifications when SMTP session limit greater than 1
Under certain circumstances, it was possible for a seminar notification email to
contain the calendar invitation belonging to another user. This only occurred
when "SMTP session limit" was set to more than 1, two seminar notifications were
processed one after the other within one SMTP session (e.g. if the session limit
was set to 5 then both notifications would need to be processed in the same
batch of 5), the first notification related to a seminar event with only one
session, and the second notification related to an event with more than one
session.
TL-37302 Updated the readme file with the correct MariaDB supported versions
Database upgrades:
TL-36808 Allow memoization for Postgres 14.2 and above.
PostgreSQL 14 introduced memoization as a feature that can improve performance.
However with PostgreSQL versions 14.0 or 14.1 it would cause several Totara
queries to return incorrect results. Because of this a requirement was added for
PostgreSQL 14 that the enable_memoize flag be set to off.
This has been fixed from PostgreSQL 14.2. With this patch in place the
enable_memoize=off setting is only required if you're using PostgreSQL 14.0 or
14.1.
Technical changes:
TL-36403 Added 'mobile_coursecompat' property to the catalog_item GraphQL type, so it could be used in the mobile_findlearning_view_catalog GraphQL query
Library updates:
TL-37326 Updated nyholm/psr7 library to 1.6.1
Release 15.19 (25th May 2023):
Important:
TL-37167 Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion
When launching an External tool activity based on a LTI 1.3 compatible provider
the viewing event did not get triggered. This resulted in no event log entry
being created and completion through the activity completion setting "Learner
must view this activity to complete it" not being recognised. This has now been
fixed.
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Improvements:
TL-33639 Added the 'new tab' icon to the warning links in the confirm activity delete modal
Bug fixes:
TL-36042 Fixed inaccurate Seminar notification name
The name 'Facilitator sessions details changed' inaccurately described the
behaviour of this notification. The name has been changed to 'Facilitator
sessions date/time changed' to more accurately indicate what event will trigger
sending the notification.
TL-36226 Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
TL-36826 Changed usages of array_key_exists to property_exists
array_key_exists() will also return {{true}} if {{key}} is a property
defined within an object given as {{{}array{}}}. This behaviour is deprecated
as of PHP 7.4.0, and removed as of PHP 8.0.0.
For such a case, we changed array_key_exists() to property_exists().
TL-36847 Added spacing above the 'Back to audiences' button when editing audience members
TL-36895 Made API for deleting notification records consistent with newer versions
The code which deletes notification records and which is used in newer versions
when deleting activities or courses has been made consistent. This ensures
customisations and future changes will work as expected when deleting records.
TL-36975 Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters
Previously a character limit for placeholder names in database queries existed.
This was only due for compatibility reasons with Oracle which Totara does not
support. The limit has been removed.
TL-37139 Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
TL-37153 Fixed notifications being sent twice if they were overridden in more than one context
If a notification was created in the higher context (such as at site-level), was
customised in more than one intermediate context (such as both course and
activity contexts) and the related notification event occurred in a lower
context (e.g. extended context from an activity) then the notification system
would send a notification for each of the customisations at the intermediate
levels (e.g. the notifications as they appear in both course and activity). This
has been fixed - now only one notification will be sent, which will use the
properties defined at the lowest context (e.g. activity context in this
example).
TL-37208 Fixed error messages triggered during centralised notification tasks not showing debugging details
When debugging is enabled on the site any error triggered during the run of the
centralised notification scheduled tasks do not contain additional debugging
information.
This has been changed to help identifying problems during the task runs.
TL-37302 Updated the readme file with the correct MariaDB supported versions
Library updates:
TL-37326 Updated nyholm/psr7 library to 1.6.1
Release 14.24 (25th May 2023):
Important:
TL-37167 Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion
When launching an External tool activity based on a LTI 1.3 compatible provider
the viewing event did not get triggered. This resulted in no event log entry
being created and completion through the activity completion setting "Learner
must view this activity to complete it" not being recognised. This has now been
fixed.
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Improvements:
TL-33639 Added the 'new tab' icon to the warning links in the confirm activity delete modal
Bug fixes:
TL-36042 Fixed inaccurate Seminar notification name
The name 'Facilitator sessions details changed' inaccurately described the
behaviour of this notification. The name has been changed to 'Facilitator
sessions date/time changed' to more accurately indicate what event will trigger
sending the notification.
TL-36161 Backported learning item visibility fixes
The totara_mobile_certification query now returns a 'viewable' flag for all
courses in certifications and programs
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
TL-36826 Changed usages of array_key_exists to property_exists
array_key_exists() will also return {{true}} if {{key}} is a property
defined within an object given as {{{}array{}}}. This behaviour is deprecated
as of PHP 7.4.0, and removed as of PHP 8.0.0.
For such a case, we changed array_key_exists() to property_exists().
TL-36847 Added spacing above the 'Back to audiences' button when editing audience members
TL-36895 Made API for deleting notification records consistent with newer versions
The code which deletes notification records and which is used in newer versions
when deleting activities or courses has been made consistent. This ensures
customisations and future changes will work as expected when deleting records.
TL-37139 Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
TL-37153 Fixed notifications being sent twice if they were overridden in more than one context
If a notification was created in the higher context (such as at site-level), was
customised in more than one intermediate context (such as both course and
activity contexts) and the related notification event occurred in a lower
context (e.g. extended context from an activity) then the notification system
would send a notification for each of the customisations at the intermediate
levels (e.g. the notifications as they appear in both course and activity). This
has been fixed - now only one notification will be sent, which will use the
properties defined at the lowest context (e.g. activity context in this
example).
TL-37208 Fixed error messages triggered during centralised notification tasks not showing debugging details
When debugging is enabled on the site any error triggered during the run of the
centralised notification scheduled tasks do not contain additional debugging
information.
This has been changed to help identifying problems during the task runs.
TL-37302 Updated the readme file with the correct MariaDB supported versions
Release 13.32 (25th May 2023):
Important:
TL-37167 Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion
When launching an External tool activity based on a LTI 1.3 compatible provider
the viewing event did not get triggered. This resulted in no event log entry
being created and completion through the activity completion setting "Learner
must view this activity to complete it" not being recognised. This has now been
fixed.
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Bug fixes:
TL-36042 Fixed inaccurate Seminar notification name
The name 'Facilitator sessions details changed' inaccurately described the
behaviour of this notification. The name has been changed to 'Facilitator
sessions date/time changed' to more accurately indicate what event will trigger
sending the notification.
TL-36161 Backported learning item visibility fixes
The totara_mobile_certification query now returns a 'viewable' flag for all
courses in certifications and programs
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
TL-36847 Added spacing above the 'Back to audiences' button when editing audience members
TL-37139 Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
Release 12.53 (25th May 2023):
Security issues:
TL-36538 Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
TL-36869 Fixed an XSS risk when misconfigured Algebra filter displayed an error message
TL-37228 Cherry-picked MDL-77187 Validate external method sort parameters
Bug fixes:
TL-36397 Fixed a formatting issue for the 'noreplyname' string when sending emails
