Hello everyone,
The following versions of Totara TXP/Learn have now been released:
Release 15.5
Release 14.10
Release 13.18
Release 12.41
Release 11.50
Release 10.54
Release 9.62
Release 2.9.62
Release 2.7.67
Release 2.6.84
Release 2.5.88
Release 2.4.83
These releases do contain security fixes, and for this reason we strongly recommend upgrading.
Each release also includes bug fixes and improvements.
Kind regards
Dave Curry
Release 15.5 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33838 Fixed issue with grade report capability not being respected
In some cases, a learner was still able to view grades even if the
capability had been removed. This has been fixed such that the capability
is always checked.
Improvements:
TL-31790 Install/Upgrade environment check added for MariaDB versions 10.6 and later
A new environment check for mariadb database configuration was added for
the install & upgrade process
TL-33547 Improved layout of labels in legacy course activity adders
TL-33550 Added support for completion archiving to lesson modules
Previously the lesson module did not support completion archiving, this
meant that if you used the "Reset completions" functionality under "Course
administration" that lesson data persisted. Support for this has been added
and now if you reset completions for a course it will also remove lesson
timing data, lesson attempt data, and lesson overrides for completed users
in the course.
Bug fixes:
TL-33158 Fixed the handling of incorrect course enrolment timestamps when creating course completion records
Previously, the course completion module set the enrolment date to the
current time when there were no user enrolment records. This led to the
problem where reports that used the completion data showed the wrong
enrolment dates.
This patch changes this; now the enrolment time is zero when the course
completion record is created for unenrolled users. It is only when the user
actually enrols in a course that the timeenrolled value in the completion
record is updated.
TL-33173 Fixed database queries failing depending on the locale of the webserver
Due to the fact that float conversion to strings is locale dependent on PHP
this can lead to failing database queries if the locale is set to one which
uses a different decimal separator (i.e. German uses the comma instead of
the dot). Floats like 123.456 would be converted to 123,456.
This patch fixes this issue by converting floats to locale-independent
strings before using them in database operations.
This has been an issue in MySQL and MSSQL.
TL-33208 Prevented language strings from being HTML-escaped in the search results template
Previously, the matchingfilename language string was being HTML-escaped in
search results, causing raw HTML to display on the page. The included
filename itself is already escaped before being inserted in the language
string.
TL-33403 Fixed a bug that was causing notifications to be sent for closed performance activities
TL-33430 Fixed due date not immediately updating upon creation of completion records during assignment
TL-33595 Fixed goals not working when multi tenancy was enabled
Previously, goals functionality was not fully working when multi tenancy
was enabled, especially if isolation mode was enabled. With this patch
goals are now working within the restrictions of multi tenancy. This means
that management of company goals can only be done with system permissions
by system users. Company goal assignment and personal goals management can
be done by tenant users or their managers (depending on how the permissions
are set up). There are some restrictions if isolation is enabled, the
viewing of company goals or goal frameworks is not possible as tenant users
and the links to these pages are not shown in this case.
TL-33621 Fixed error when showing menu item sortorder event in the logs
TL-33635 Fixed a JavaScript error on the competencies tab for learning plans
Previously if a user could view but not edit competencies within a learning
plan, there was a JavaScript error on the page.
TL-33638 Fixed minor JavaScript issue when changing drop zones on a drag and drop question
TL-33706 Fixed the room link placeholder for Seminar notifications
Previously if you added the [session:room:link] placeholder to a seminar
notification the link it displayed was incorrect for virtual rooms. This
has been fixed to match the correct output used by the [session:rooms]
placeholder.
TL-33726 Fixed missing details in seminar session facilitator confirmation notification
Initialised the details field before sending any notification.
TL-33780 Fixed notifications not inheriting from immediate natural parent context
A bug meant that notification preferences that were created in the
immediate parent "natural" context of an "extended" context were not being
considered when determining notifications that apply in the extended
context. This bug did not affect any core Totara functionality, because the
existing notifications were not configured in this way, but may have
affected third-party development.
TL-33782 Fixed SCORM modules not being loaded in mobile browsers and in the mobile app
Tui front end framework:
TL-31967 Fixed issue where collapsing the tables on the 'manually rate competencies' page would remove the table header
TL-33497 Fixed error modal "copy all" in IE 11
TL-33572 Fixed visual clipping on the ParticipantGeneralInformation TUI component
Recommendations engine:
TL-33600 Fixed the headers of exported `item_data_x.csv` files for the recommendation engine
The headers that related to the course tags and engage topics were being
prefixed with 'topic_' string. This would cause buggy computations in the
recommendation engine when some tags and labels shared the same name. This
bug is fixed so tags and labels will have relevant prefixes 'tag_' and
'topic_', respectively.
TL-33681 The warning issue with the new APScheduler package is resolved
TL-33682 Fixed the favicon issue after Flask upgrade
TL-33696 Updated the requirements file with specific library versions
Prior to this change only directly added libraries were recorded in the
requirements.txt. Any dependencies for these libraries would load the most
recent version it could, which could result in things breaking if a new
version introduced a breaking change and did not report it correctly.
With this patch, we have pinned all dependencies to specific versions that
we have tested works with the recommendations engine.
Contributions:
* Brad Simpson at Kineo USA - TL-33547
Release 14.10 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33838 Fixed issue with grade report capability not being respected
In some cases, a learner was still able to view grades even if the
capability had been removed. This has been fixed such that the capability
is always checked.
Improvements:
TL-31790 Install/Upgrade environment check added for MariaDB versions 10.6 and later
A new environment check for mariadb database configuration was added for
the install & upgrade process
TL-33547 Improved layout of labels in legacy course activity adders
TL-33550 Added support for completion archiving to lesson modules
Previously the lesson module did not support completion archiving, this
meant that if you used the "Reset completions" functionality under "Course
administration" that lesson data persisted. Support for this has been added
and now if you reset completions for a course it will also remove lesson
timing data, lesson attempt data, and lesson overrides for completed users
in the course.
Bug fixes:
TL-33158 Fixed the handling of incorrect course enrolment timestamps when creating course completion records
Previously, the course completion module set the enrolment date to the
current time when there were no user enrolment records. This led to the
problem where reports that used the completion data showed the wrong
enrolment dates.
This patch changes this; now the enrolment time is zero when the course
completion record is created for unenrolled users. It is only when the user
actually enrols in a course that the timeenrolled value in the completion
record is updated.
TL-33173 Fixed database queries failing depending on the locale of the webserver
Due to the fact that float conversion to strings is locale dependent on PHP
this can lead to failing database queries if the locale is set to one which
uses a different decimal separator (i.e. German uses the comma instead of
the dot). Floats like 123.456 would be converted to 123,456.
This patch fixes this issue by converting floats to locale-independent
strings before using them in database operations.
This has been an issue in MySQL and MSSQL.
TL-33208 Prevented language strings from being HTML-escaped in the search results template
Previously, the matchingfilename language string was being HTML-escaped in
search results, causing raw HTML to display on the page. The included
filename itself is already escaped before being inserted in the language
string.
TL-33403 Fixed a bug that was causing notifications to be sent for closed performance activities
TL-33430 Fixed due date not immediately updating upon creation of completion records during assignment
TL-33595 Fixed goals not working when multi tenancy was enabled
Previously, goals functionality was not fully working when multi tenancy
was enabled, especially if isolation mode was enabled. With this patch
goals are now working within the restrictions of multi tenancy. This means
that management of company goals can only be done with system permissions
by system users. Company goal assignment and personal goals management can
be done by tenant users or their managers (depending on how the permissions
are set up). There are some restrictions if isolation is enabled, the
viewing of company goals or goal frameworks is not possible as tenant users
and the links to these pages are not shown in this case.
TL-33621 Fixed error when showing menu item sortorder event in the logs
TL-33706 Fixed the room link placeholder for Seminar notifications
Previously if you added the [session:room:link] placeholder to a seminar
notification the link it displayed was incorrect for virtual rooms. This
has been fixed to match the correct output used by the [session:rooms]
placeholder.
TL-33726 Fixed missing details in seminar session facilitator confirmation notification
Initialised the details field before sending any notification.
TL-33780 Fixed notifications not inheriting from immediate natural parent context
A bug meant that notification preferences that were created in the
immediate parent "natural" context of an "extended" context were not being
considered when determining notifications that apply in the extended
context. This bug did not affect any core Totara functionality, because the
existing notifications were not configured in this way, but may have
affected third-party development.
Tui front end framework:
TL-31967 Fixed issue where collapsing the tables on the 'manually rate competencies' page would remove the table header
TL-33497 Fixed error modal "copy all" in IE 11
TL-33572 Fixed visual clipping on the ParticipantGeneralInformation TUI component
Recommendations engine:
TL-33600 Fixed the headers of exported `item_data_x.csv` files for the recommendation engine
The headers that related to the course tags and engage topics were being
prefixed with 'topic_' string. This would cause buggy computations in the
recommendation engine when some tags and labels shared the same name. This
bug is fixed so tags and labels will have relevant prefixes 'tag_' and
'topic_', respectively.
TL-33696 Updated the requirements file with specific library versions
Prior to this change only directly added libraries were recorded in the
requirements.txt. Any dependencies for these libraries would load the most
recent version it could, which could result in things breaking if a new
version introduced a breaking change and did not report it correctly.
With this patch, we have pinned all dependencies to specific versions that
we have tested works with the recommendations engine.
Contributions:
* Brad Simpson at Kineo USA - TL-33547
Release 13.18 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33838 Fixed issue with grade report capability not being respected
In some cases, a learner was still able to view grades even if the
capability had been removed. This has been fixed such that the capability
is always checked.
Improvements:
TL-31790 Install/Upgrade environment check added for MariaDB versions 10.6 and later
A new environment check for mariadb database configuration was added for
the install & upgrade process
TL-33547 Improved layout of labels in legacy course activity adders
Bug fixes:
TL-33158 Fixed the handling of incorrect course enrolment timestamps when creating course completion records
Previously, the course completion module set the enrolment date to the
current time when there were no user enrolment records. This led to the
problem where reports that used the completion data showed the wrong
enrolment dates.
This patch changes this; now the enrolment time is zero when the course
completion record is created for unenrolled users. It is only when the user
actually enrols in a course that the timeenrolled value in the completion
record is updated.
TL-33208 Prevented language strings from being HTML-escaped in the search results template
Previously, the matchingfilename language string was being HTML-escaped in
search results, causing raw HTML to display on the page. The included
filename itself is already escaped before being inserted in the language
string.
TL-33595 Fixed goals not working when multi tenancy was enabled
Previously, goals functionality was not fully working when multi tenancy
was enabled, especially if isolation mode was enabled. With this patch
goals are now working within the restrictions of multi tenancy. This means
that management of company goals can only be done with system permissions
by system users. Company goal assignment and personal goals management can
be done by tenant users or their managers (depending on how the permissions
are set up). There are some restrictions if isolation is enabled, the
viewing of company goals or goal frameworks is not possible as tenant users
and the links to these pages are not shown in this case.
TL-33706 Fixed the room link placeholder for Seminar notifications
Previously if you added the [session:room:link] placeholder to a seminar
notification the link it displayed was incorrect for virtual rooms. This
has been fixed to match the correct output used by the [session:rooms]
placeholder.
TL-33755 Fixed a bug that was causing overdue notifications to be sent for close performance activities
Tui front end framework:
TL-31967 Fixed issue where collapsing the tables on the 'manually rate competencies' page would remove the table header
TL-33497 Fixed error modal "copy all" in IE 11
TL-33572 Fixed visual clipping on the ParticipantGeneralInformation TUI component
Recommendations engine:
TL-33696 Updated the requirements file with specific library versions
Prior to this change only directly added libraries were recorded in the
requirements.txt. Any dependencies for these libraries would load the most
recent version it could, which could result in things breaking if a new
version introduced a breaking change and did not report it correctly.
With this patch, we have pinned all dependencies to specific versions that
we have tested works with the recommendations engine.
Contributions:
* Brad Simpson at Kineo USA - TL-33547
Release 12.41 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
TL-33838 Fixed issue with grade report capability not being respected
In some cases, a learner was still able to view grades even if the
capability had been removed. This has been fixed such that the capability
is always checked.
Bug fixes:
TL-28557 Backported TL-32970 to make sure no error message appears when expanding categories in navigation block
TL-33158 Fixed the handling of incorrect course enrolment timestamps when creating course completion records
Previously, the course completion module set the enrolment date to the
current time when there were no user enrolment records. This led to the
problem where reports that used the completion data showed the wrong
enrolment dates.
This patch changes this; now the enrolment time is zero when the course
completion record is created for unenrolled users. It is only when the user
actually enrols in a course that the timeenrolled value in the completion
record is updated.
TL-33208 Prevented language strings from being HTML-escaped in the search results template
Previously, the matchingfilename language string was being HTML-escaped in
search results, causing raw HTML to display on the page. The included
filename itself is already escaped before being inserted in the language
string.
Release 11.50 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 10.54 (24th March 2022):
Security issues:
TL-33486 Cherry-picked MDL-61114 to ensure that assignment overrides observe group membership in the assignment module
Previously teachers in an assignment group could modify group overrides for
other groups in the same assignment. This has now been fixed.
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 9.62 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 2.9.62 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 2.7.67 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 2.6.84 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 2.5.88 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.
Release 2.4.83 (24th March 2022):
Security issues:
TL-33756 Improved validation of badge criteria to prevent SQL injection
The profile completion criteria for course badges was vulnerable to SQL
injection. The attacker was required to be logged in as a user
with a role that has the `moodle/badges:configurecriteria` capability. The
Editing Trainer role includes this capability.
This vulnerability has been fixed.
To check for indicators of compromise, search for "Badge criteria created"
and "Badge criteria updated" events in Totara's site logs and then review
the corresponding badges. If an exploit has been attempted, error messages
around invalid strings will be shown on the Criteria tab for affected
badges.