Hello everyone,
The following versions of Totara Learn have now been released:
- Release Evergreen
- Release 12.5
- Release 11.14
- Release 10.20
- Release 9.31
- Release 2.9.42
- Release 2.7.50
- Release 2.6.67
- Release 2.5.73
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:
- Haitham Gasim - Kineo USA - TL-20794
- Jo Jones at Kineo UK - TL-19815
- Kineo UK - TL-20751
- Think Learning - TL-20764
Kind regards
David Curry
Release Evergreen (29th April 2019):
Key: + Evergreen only
Important:
TL-20729 + All text is now consistently sanitised before being displayed or edited
Prior to this change, privileged users could introduce security
vulnerabilities through areas such as course summaries, section
descriptions and activity introductions.
The original purpose of the functionality was to allow content creators to
use advanced HTML functionality such as iframes, JavaScript and objects. In
some areas it was explicitly allowed to happen. In others, the trusttext
system was used to manage who could embed potentially harmful content.
This patch includes the following changes:
* A new setting 'Disable consistent cleaning' has been introduced. It is
set to 'off' by default.
* Text in the affected areas will be now be sanitised, both when it is
displayed, and when it is loaded into an editor.
* The trusttext system will be forced off by default and be disabled
unless the new setting is turned on.
* SVG images will be served with more appropriate content-disposition
headers.
The consequence of this change is that by default no user will be able to
use the likes of iframes, JavaScript or object tags in the majority of
places where they previously could.
For those who rely on the old behaviour, the new 'Disable consistent
cleaning' setting can be enabled in order to return the old behaviour.
However we strongly recommend that you leave this setting off, as when it
is turned on the security vulnerabilities will be present. When enabled,
this setting will be shown in the security report.
Please be aware that there is a data-loss risk for any sites which are
upgrading to this release and have relied upon the previous behaviour if
they have not enabled the new 'Disable consistent cleaning' setting. After
upgrading, unless you enable the legacy behaviour, when a user edits
content relying upon this functionality and saves it, they will cause the
cleaned version to be saved to the database. Any unallowed HTML tags, or
attributes, will have been removed.
For more information on this change, and a list of affected areas please
refer to our help documentation.
https://help.totaralearning.com/display/DEV/Totara+13+changes+to+content+sanitisation
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20607 Improved HTML sanitisation of Bootstrap tool-tips and popovers
An XSS vulnerability was recently identified and fix in the Bootstrap 3
library that we use.
The vulnerability arose from a lack of sanitisation on attribute values for
the popover component.
The fix developed by Bootstrap has now been cherry-picked into all affected
branches.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
TL-20622 Totara form editor now consistently cleans content before loading it into the editor
TL-20704 + Improved the format_string() function to prevent XSS when results are not properly encoded in HTML attributes
Previously it was possible to enable the use of arbitrary HTML tags in
course and activity names. This is a security risk and is no longer
allowed.
Improvements:
TL-17930 + Added the ability to set a Report Builder saved search as a default view
As a Report Builder report curator, a saved search can be set as the report
default view.
This search will be applied as a default view for everyone who has
visibility of the report. Viewers of the report can remove the default or
change to another saved search so they have their own saved view.
TL-19493 + A link to the component overview screen is now shown when viewing Learning Plan component items
A link has been added to the screen for individual Learning Plan component
items (e.g., a specific course, program, competency, or objective) that
returns the user back to the component overview screen (e.g., all courses,
programs, competencies, objectives).
TL-19808 + Allowed CSV import of seminar attendees from files without columns for custom fields
Seminar attendees can now be imported from CSV files that only have columns
for required custom fields or, if there are no required custom fields, from
a list of users with no other columns.
TL-19815 + Improved performance of replace_all_text() method in DML layer
This improved performance of unsupported "DB Search and replace" tool.
Instead of blind attempts to search and replace content in all rows, it
selects only rows that have searched content first.
TL-20147 Improved the help text in programs and certifications by specifying that course scores have to be whole numerical values.
TL-20360 Improved the enrolment type filter for course completion reports
Previously the enrolment type filter was a text search against a database
value stored for enrolments, this was particularly a problem for audience
enrolments since the database value was 'cohort' even though it was
displayed as 'Audience Sync'. While the filter worked if you searched on
'cohort', this wasn't immediately obvious. This filter has been updated to
a multiple-select interface which has options for each enabled enrolment
plugin. To maintain all available functionality the multi-select interface
for filters has also had its operators updated from "Any/All" to include
"Not Any/Not All".
TL-20402 Decoupled profile editing from administration menu editing
Users no longer require 'moodle/user:editownprofile' capability to be able
to edit their own administration menu preferences.
In order to edit their administration menu preferences they need just the
'totara/core:editownquickaccessmenu' capability.
TL-20407 Added a Basis theme setting to override the colour of submit buttons
A new 'Primary button color' setting provides a way to override the
background colour of submit buttons in the Basis theme. The appearance of
other types of buttons is still controlled by the 'Button color' setting.
The 'Preview' buttons on the Basis theme settings form did not work as
intended and have been removed. Theme designers are encouraged to use the
Element Library to view the effects of theme colour changes immediately
after update.
TL-20441 + Converted seminar cancellation tab to an embedded report
TL-20516 Changed ambiguous wording for confirmation button in the appraisal unlock stage page
In the appraisal unlock stage page, the confirmation button had potentially
confusing text. It was not clear that clicking 'Save changes' without
making any changes on the form would still have some effect. This patch
changes the wording to 'Apply' instead.
Also, the unlock stage interface on the Appraisal Assignments page has been
improved.
TL-20517 Improved compatibility with Solr 7
TL-20537 Added an event for enabling and disabling authentication methods
Prior to this patch, when an admin enabled or disabled an authentication
method, there was no event triggered. This patch adds an event there for
auditing purposes.
TL-20554 Improved navigation to user profile page after adding or updating a user
Changes have been made to user administration in order to streamline adding
and updating users. Prior to this patch, administrators were redirected to
the list of users after adding a user, and to the previous screen when
editing a user profile. These are not always desired behaviours.
'Browse list of users' has been renamed 'Manage users', and 'Add a new
user' has been renamed 'Create user'.
A 'Save and view' button has been added to the 'Create user' and 'Edit user
profile' forms, in order to give administrators the ability to navigate to
the new user's profile after creating it. The existing 'Create user' and
'Update profile' buttons have been relabelled 'Save and go back', and will
take the administrator back to where they were when they clicked to add or
edit the user.
TL-20579 + Improved deletion confirmation for hierarchy frameworks and items
This patch unifies deletion confirmation for hierarchy frameworks and
items, as well as adding details about related data to be deleted in the
framework confirmation and bulk delete confirmation dialogues.
TL-20610 Added event triggers for changing site administration group
Prior to this patch, when an admin assigned users to or unassigned users
from the site administration group, then there was no event to be
triggered, and consequently, the system was not able to log the event.
This patch introduces a new event triggered by changes to the site
administration group, allowing the system to be able to log the event.
TL-20674 Added a 'scheduled task updated' event to log changes to scheduled tasks
TL-20695 Added timezone option to the appraisal and feedback 360 date question type
The option 'Include timezone as well as time' was added when adding a date
picker question to an appraisal or feedback 360. When enabled, the date
question will include a timezone selector, defaulting to the user's current
time zone. When the appraisal or feedback 360 is saved, other users will
see the answer to the date question in the timezone that the user selected,
rather their own time zone.
TL-20705 Improved validation for checkbox audience rules
As part of server-side validation of audience rule forms, this now checks
that a value has been submitted and that it is either 0 (not checked) or 1
(checked).
TL-20710 Feedback activity UI for editing questions now reflects actual question and page break order
Previously, when dragging an item and dropping it outside of appropriate
drop zone, the UI would change however the database was not updated to
reflect the change. Now when the item is dropped outside of the
appropriate drop zone, the item will snap back to the point of origin.
Bug fixes:
TL-13902 Updated the title for the seminar event 'more info' page for attendees
Previously the header title text used on the 'more info' page for a seminar
event said 'Sign up for [seminar name]' even if a user was already signed
up.
This has been fixed to show just the seminar name if the user is an
attendee.
TL-14355 Fixed validation for menu type audience rules
Previously audience rules using the menu interface were lacking validation
on empty submissions, so if you attempted to save without selecting a value
there would be an exception thrown, a broken rule would be added, and you
would be redirected away from the page, which meant that you would have to
navigate back and remove the rule. Now the form submission is halted and a
warning is shown to enter a value.
Affected audience rules are:
* position type
* position menu customfields
* organisation type
* organisation menu customfields
* user menu customfields
TL-19820 Fixed bugs in quiz 'Review options' marks settings
A quiz can be set to hide marks (grade) from learners at various times,
using the 'Review options' checkboxes in quiz settings. For example, a quiz
can withhold a learner's grade until the quiz has closed.
Prior to this patch, the 'Review options' marks setting also affected the
recording of activity completion. If marks were hidden from the learner,
then activity completion was recorded as 'Complete' when all conditions
were met, rather than as 'Complete with pass' or 'Complete with fail'.
Activity completion was not updated later if the marks became visible to
the learner, and was not consistent with the way grades are recorded:
grades are always visible to a trainer, whether learners can see them or
not.
With this patch, quizzes (or any other activities with grade items hidden
from learners) are always marked as 'Complete with pass' or 'Complete with
fail' if a grade is required for completion. When learners view the course
homepage, activity completion tick marks are modified to hide pass/fail
status if the grade is hidden. Trainers will always see the true status.
This patch also ensures that grade items are correctly show/hidden
according to a quiz's 'Review options' marks settings, with the exception
that grades that have already been revealed are not hidden later.
TL-20148 Fixed a web services error that occurred when the current language resolved to a language that was not installed
TL-20149 Fixed secondary navbar not showing when browsing third level child page
TL-20258 Fixed incorrectly appended context links when sending alerts
Prior to this patch messages sent as alerts could, in some cases, have
superfluous text appended related to context links.
TL-20338 + Removed deleted users from seminar views
Prior to this patch, when a user record was deleted from the system, all of
the user's signup records remained visible in seminar views.
With this patch, only users with permission to see deleted users
(totara/core:seedeletedusers capability) will be able to see or modify the
signups of deleted users.
TL-20448 Fixed a display issue with conditional access when audience, position, or organisation restrictions were in use
Prior to this fix in situations where a restriction set contained an
audience, position or organisation restriction the controls for
manipulating the restriction set would be hidden, making it impossible to
edit the restriction set.
TL-20466 The approveanyrequest capability is now correctly checked when processing a seminar approval request
Users who hold the 'mod/facetoface:approveanyrequest' capability previously
would encounter an error when attempting to approve a signup request in a
context where they held the capability but did not meet any other required
conditions.
This has been fixed to ensure that the capability is correctly checked when
processing a users approval request.
TL-20467 MDL-57486: Delete items when context already deleted
TL-20468 The grade overview report now correctly respects audience based visibility
TL-20475 Fixed seminar grades not being correctly updated when the override flag is removed on a gradebook
The third argument of facetoface_update_grades() was changed as follows.
In previous releases, the system set NULL as grade if true is passed.
From now on, the system sets a default grade if true is passed.
The default grade is calculated by using grading method in T13, and the
last saved attendance state in T12.
TL-20482 Fixed 'View dates' link on program/certification assignment page
TL-19190 introduced a regression where clicking on the 'View dates' link
against a group assignment on the assignments page would display a pop-up
with all the users assigned to the program. This has now been fixed and
only users from the specific assigned group are displayed.
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20500 Fixed a bug where a manual data purge of certification assignments and completion did not purge deleted users' records
TL-20504 Made sure that learning plan access is being checked before sending out comment notifications
Previously, any user that interacted with a learning plan by leaving a
comment would continue to receive notifications about other users' comments
to the plan, even if the user no longer had access to the plan. Now only
plan owners, active managers, and users with the
'totara/plan:accessanyplan' and 'totara/plan:manageanyplan' capabilities
receive notifications about new comments.
TL-20513 + Ensured that seminar activity 'View all events' link on course homepage isn't hidden by horizontal scrollbar on Mac OS
On Mac OS, the default System Preference is to hide scrollbars until
needed. When the scrollbars are shown, they may obscure content or make it
difficult to click links that are underneath them. This was sometimes the
case with the 'View all events' link under seminar activities on course
homepages.
The link has been made larger, and padding added, to ensure that it is
still clickable if a horizontal scrollbar appears under it.
TL-20515 Fixed bug that could leave a job assignment linked to seminar signup records after the job assignment was deleted
TL-20520 + Fixed saved-search functionality on seminar room and asset embedded reports
Added rb_config and $sid to asset and room embedded reports to ensure saved
searched can be viewed.
TL-20522 Fixed IE11 visual bugs and broken buttons when editing the administration menu
TL-20523 Fixed the display of site logs for legacy seminar status codes
TL-20526 Check course setting and 'grade:view' capability in course details
Previously the report-based course catalogue displayed grades for all
completed courses without taking into account the "Show gradebook to
learners" course setting or the 'moodle/grade:view' capability of a report
viewer. This has now been fixed.
TL-20534 Fixed a bug preventing grid catalogue filters from properly recognising unicode characters
Previously grid catalogue filters were unable to identify courses to list
when a course custom multi-select field contained options with unicode
characters, e.g. Matěj, Dvořák. This patch fixes the search
functionality so that options with unicode characters can be correctly
identified.
TL-20535 Included helptooltip as a dialog-nobind class condition in totara_dialog.js
TL-20547 + Fixed JavaScript validation on Moodle forms
Previously, when calls were made to $PAGE->get_end_code(false), AMD
JavaScript was not being added to the HTML. This has now been corrected.
This enables Moodle form validation when editing Appraisals, Audience rules
and Seminar times, rooms and assets.
TL-20568 Fixed misleading 'not answered' text for appraisal questions
TL-20052 was supposed to fix this; however that patch was found to address
the case when only the learner needed to answer questions. The bug still
occurred if the appraisal had a mix of questions and permissions that other
roles need to answer.
This patch fixes the latter problem.
TL-20586 Fixed event generation when deleting hierarchy items
Prior to the patch the same event was generated for all descendant
hierarchy items when deleting an item with children.
As a side effect this patch fixes course activity access restrictions based
on a position or organisation. Prior to the patch if a child position or
organisation was used to restrict access to a course activity and then its
parent was deleted, the restriction setup menu for this activity was
broken.
TL-20592 Removed block display when restoring an activity backup
Blocks are not displayed while restoring a course backup, because users are
expected to move though the restore workflow using the navigation buttons
at the bottom of the screen, and because the 'Add a block' feature doesn't
work during restore.
Because of a bug, blocks had been displayed while restoring an activity
backup. This has been fixed, and no blocks should display during any type
of multiple-step restore.
A renderer bug that resulted in an unclosed div tag on the second screen
of the restore process has also been fixed.
TL-20598 Fixed the available actions on seminar attendees pages so they respect the 'mod/facetoface:addattendees' capability
Prior to this patch, both the 'add' and 'remove' attendees options were
shown in the drop-down menu on the seminar event attendees pages, even if a
user only had the 'mod/facetoface:removeattendees' capability.
The 'add attendees' option will now only be displayed for users with
'mod/facetoface:addattendees' capability.
TL-20609 Fixed an issue in the main menu where a certain combination of preset rules caused an infinite loop
TL-20634 Improved security and transparency of seminar 'Message users' feature
In previous versions, any user who had the seminar 'Take attendance'
capability could use the 'Message users' form to see attendee email
addresses and send messages to one or more attendees.
'Message users' has been changed to require three permissions in the
context of the seminar activity: 'Send messages to any user'
(moodle/site:sendmessage), 'Send a message to many people'
(moodle/course:bulkmessaging) and 'View attendance list and attendees'
(mod/facetoface:viewattendees). These permissions continue to be enabled by
default for trainers and editing trainers.
Also, when a user views the 'Message users' form, a 'Messages users viewed'
event is logged. When the form is used to send messages, a 'Message sent'
event is logged.
TL-20635 Fixed the destination for the 'room name link' column in seminar reports
Recent improvements to seminars changed the destination of the links to the
rooms edit page, which can only be accessed by certain roles. The link now
directs users to a less-restricted 'view details' page again.
TL-20637 Fixed 'Bulk add attendees' form when signup capability is disabled for learner role
When the learner role had the 'Sign-up for an event' capability disabled,
it was not possible for an administrator to add a learner to a seminar
event. The system now checks the permissions of the person who is
performing the action, rather than the permissions of the person being
signed up.
TL-20638 Ensured that quiz question ids are unique when they are rendered on the page
Previously, when a quiz question was displayed, the outer div of the
question had an id="q123" added. Unfortunately, this id was not unique in
all cases which lead to the issues in manual grading where multiple
responses for the same question were displayed. This has now been fixed.
TL-20643 Ensured HR Import checks for unique user profile fields are not performed on empty or null values
User custom fields that are set as being unique where the source value is
an empty string or null are no longer included in the checks to ensure
uniqueness.
Previously where multiple records contained empty strings where uniqueness
was being enforced, the entire user record was failing and not imported.
TL-20661 Fixed sending of activation emails for all of manager's appraisals
Previously upon appraisal activation, a manager would only receive one
email, regardless of how many appraisees they had. This was true even if
the activation notification content explicitly included appraisee details,
e.g. appraisee full name.
This patch fixes this; now the manager gets emails for individual
appraisees. However, if the message is a generic one (i.e. one that did not
have placeholders to differentiate emails to different people), then they
will still only get one email.
Note: the one generic email per manager only happens if all the appraisees
automatically get a job assignments upon appraisal activation (i.e.
multiple job assignments is off). If the appraisee still has to view the
appraisal to indicate the job assignment, then the manager will receive
multiple generic emails each time their appraisee first views an appraisal.
TL-20668 Primary admin and web service users are no longer required to provide their required profile fields information
TL-20670 Fixed infinite recursion when generating API documentation
TL-20681 Made sure course completion value in the Record of Learning report export doesn't contain HTML
TL-20683 Fixed totara core upgrade to avoid using the system API
Prior to this patch, the upgrade path for evergreen was using system API,
which was involving the user session to perform actions. Therefore, it
failed to upgrade to evergreen from CLI.
With this patch, it is possible to upgrade to evergreen with CLI.
TL-20685 + Fixed a bug preventing the export of seminar events
TL-20689 Fixed the display of submission grade and status in the "Assignment submission" report
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20703 Fixed incorrect offset when creating a user tour targeting the main navigation
TL-20712 Fixed feedback preview with a "pagebreak" item at the top on the page
TL-20720 Fixed issue with grades been saved as 0.0000 on seminar table
Since Totara 12.0, and until Evergreen-20190322, seminar grades have been
saved as 0.0000 in the facetoface_signups_status table, regardless of
attendance state.
Gradebook grades were not affected by this bug.
Previous versions correctly set the grade field to null until attendance
was taken, and then set it to a grade based on attendance. This patch fixes
the regression. In summary:
* The correct grade value will always be saved into
facetoface_signups_status table, regardless of seminar grade settings
* If attendance state is 'Not set' when taking attendance, the grade field
will be set to null
* Incorrect facetoface_signups_status grade values will be rewritten with
a correct value, based on attendance state, during this upgrade (where
possible, see exception below)
* If the system detects backup data made with any affected version during
course or activity restore, the correct grade will be used instead of the
backed-up grade
Upgrades from Evergreen-20190322 might require some manual intervention,
because it is not possible to reliably distinguish grades introduced by the
bug from grades that have been set to 0.000 via manual grading.
TL-20727 Ensure email notifications work correctly in HR Import after upgrade
Upgrading to Totara 12 or 13 from Totara 11 or earlier may have stopped
email notification from being sent in HR Import. This change ensures that
they are sent correctly.
TL-20747 Restored 'Update all activities' functionality for custom seminar notification templates
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
TL-20764 Added horizontal scroll bar to user multiselect
This will not work in IE11 or Firefox (Due to
https://bugzilla.mozilla.org/show_bug.cgi?id=1294313).
TL-20773 Fixed unit test failure for third-party activity plugins that do not support Totara generators
TL-20779 Removed redundant database update call in Learning Plan Evidence
TL-20794 Added missing format value on Seminar 'Download sign-in sheet' hidden field
API changes:
TL-18699 + Separated the requested approval state into requested manager approval and requested role approval
The requested approval state has been split into two separate states,
requested manager approval state, and the requested role approval state.
This allows for better control and transitioning when in a requested
approval state.
TL-20021 + Deprecated event time status functions in facetoface
Deprecated functions:
* facetoface_allow_user_cancellation()
* facetoface_is_adminapprover()
* facetoface_get_manager_list()
* facetoface_save_customfield_value()
* facetoface_get_customfield_value()
For more information, see mod/facetoface/upgrade.txt
TL-20376 + Deprecated date management functions related to facetoface
Deprecated functions:
# facetoface_save_dates()
# facetoface_session_dates_check()
For more information, see mod/facetoface/upgrade.txt
TL-20377 + Deprecated notification-related function in mod/facetoface/lib.php
Deprecated functions
* facetoface_notify_under_capacity()
* facetoface_notify_registration_ended()
* facetoface_cancel_pending_requests()
For more information, see ./mod/facetoface/upgrade.txt
TL-20378 + Deprecated environment functions related to facetoface
Deprecated functions:
# facetoface_get_session()
# facetoface_get_env_session()
For more information, see mod/facetoface/upgrade.txt
TL-20380 + Deprecated export functionality within facetoface
Deprecated functions:
# facetoface_write_activity_attendance()
# facetoface_get_user_customfields()
For more information, see mod/facetoface/upgrade.txt
TL-20381 + Deprecated trivial facetoface functions
Deprecated functions:
* facetoface_allow_user_cancellation()
* facetoface_is_adminapprover()
* facetoface_get_manager_list()
* facetoface_save_customfield_value()
* facetoface_get_customfield_value()
For more information, see mod/facetoface/upgrade.txt
TL-20383 + Deprecated seminar's attendees retriever functions
Deprecated functions in mod_facetoface:
* facetoface_get_attendee()
* facetoface_get_requests()
* facetoface_get_adminrequests()
* facetoface_get_users_by_status()
* facetoface_get_cancellations()
* facetoface_get_num_attendees()
* facetoface_get_user_submission()
* facetoface_get_attendees()
For more information and the replacements of the deprecated functions, see
'./mod/facetoface/upgrade.txt'
TL-20536 + Added Behat steps for checking emails
Developers can now write behat steps that trigger the creation of emails
which will be captured and can be examined for accuracy. These are the
Behat steps available:
# I reset the email sink
# the following emails should have been sent
# the following emails should not have been sent
# I close the email sink
TL-20572 Improved in-code documentation for the recommends_counted_recordset() method
Previously the documentation contained a link to our internal tracked.
This has been removed as it is not accessible to those outside of the
Totara development team.
Additionally performance testing results have been directly added to the
base method as defined in the moodle_database class.
Miscellaneous Moodle fixes:
TL-15552 MDL-57769: Remove 'numsections' from topics and weeks, allow teachers to create and delete sections as they are needed
This patch does not remove the 'numsections' setting from the topics and
weeks course formats, but it does make it optional for other course
formats. It also implements section management methods expected by
third-party course format plugins.
TL-20490 + MDL-64971: Ensure that the capability exists when fetching
TL-20563 MDL-61950: Fixed display of random questions in the statistics calculator in the quiz module
Prior to this patch, if a quiz had random questions in it, then viewing the
statistics report would sometimes have questions missing from the report.
Contributions:
* Haitham Gasim - Kineo USA - TL-20794
* Jo Jones at Kineo UK - TL-19815
* Kineo UK - TL-20751
* Think Learning - TL-20764
Release 12.5 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20607 Improved HTML sanitisation of Bootstrap tool-tips and popovers
An XSS vulnerability was recently identified and fix in the Bootstrap 3
library that we use.
The vulnerability arose from a lack of sanitisation on attribute values for
the popover component.
The fix developed by Bootstrap has now been cherry-picked into all affected
branches.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
TL-20622 Totara form editor now consistently cleans content before loading it into the editor
Improvements:
TL-20147 Improved the help text in programs and certifications by specifying that course scores have to be whole numerical values.
TL-20360 Improved the enrolment type filter for course completion reports
Previously the enrolment type filter was a text search against a database
value stored for enrolments, this was particularly a problem for audience
enrolments since the database value was 'cohort' even though it was
displayed as 'Audience Sync'. While the filter worked if you searched on
'cohort', this wasn't immediately obvious. This filter has been updated to
a multiple-select interface which has options for each enabled enrolment
plugin. To maintain all available functionality the multi-select interface
for filters has also had its operators updated from "Any/All" to include
"Not Any/Not All".
TL-20402 Decoupled profile editing from administration menu editing
Users no longer require 'moodle/user:editownprofile' capability to be able
to edit their own administration menu preferences.
In order to edit their administration menu preferences they need just the
'totara/core:editownquickaccessmenu' capability.
TL-20407 Added a Basis theme setting to override the colour of submit buttons
A new 'Primary button color' setting provides a way to override the
background colour of submit buttons in the Basis theme. The appearance of
other types of buttons is still controlled by the 'Button color' setting.
The 'Preview' buttons on the Basis theme settings form did not work as
intended and have been removed. Theme designers are encouraged to use the
Element Library to view the effects of theme colour changes immediately
after update.
TL-20516 Changed ambiguous wording for confirmation button in the appraisal unlock stage page
In the appraisal unlock stage page, the confirmation button had potentially
confusing text. It was not clear that clicking 'Save changes' without
making any changes on the form would still have some effect. This patch
changes the wording to 'Apply' instead.
Also, the unlock stage interface on the Appraisal Assignments page has been
improved.
TL-20517 Improved compatibility with Solr 7
TL-20537 Added an event for enabling and disabling authentication methods
Prior to this patch, when an admin enabled or disabled an authentication
method, there was no event triggered. This patch adds an event there for
auditing purposes.
TL-20538 Added enable/disable course end date to course defaults
Added a new setting in the course defaults page to enable/disable the
course end date by default when creating a new course.
TL-20554 Improved navigation to user profile page after adding or updating a user
Changes have been made to user administration in order to streamline adding
and updating users. Prior to this patch, administrators were redirected to
the list of users after adding a user, and to the previous screen when
editing a user profile. These are not always desired behaviours.
A 'Create and view' button has been added to the 'Add user' forms, in order
to give administrators the ability to navigate to the new user's profile
after creating it. Likewise, an 'Update and view' button has been added to
the 'Edit user profile' form in cases where the the default behaviour would
be to redirect the administrator to the list of users or elsewhere.
TL-20610 Added event triggers for changing site administration group
Prior to this patch, when an admin assigned users to or unassigned users
from the site administration group, then there was no event to be
triggered, and consequently, the system was not able to log the event.
This patch introduces a new event triggered by changes to the site
administration group, allowing the system to be able to log the event.
TL-20674 Added a 'scheduled task updated' event to log changes to scheduled tasks
TL-20695 Added timezone option to the appraisal and feedback 360 date question type
The option 'Include timezone as well as time' was added when adding a date
picker question to an appraisal or feedback 360. When enabled, the date
question will include a timezone selector, defaulting to the user's current
time zone. When the appraisal or feedback 360 is saved, other users will
see the answer to the date question in the timezone that the user selected,
rather their own time zone.
TL-20705 Improved validation for checkbox audience rules
As part of server-side validation of audience rule forms, this now checks
that a value has been submitted and that it is either 0 (not checked) or 1
(checked).
TL-20707 Converted seminar wait-list tab to an embedded report
TL-20710 Feedback activity UI for editing questions now reflects actual question and page break order
Previously, when dragging an item and dropping it outside of appropriate
drop zone, the UI would change however the database was not updated to
reflect the change. Now when the item is dropped outside of the
appropriate drop zone, the item will snap back to the point of origin.
Bug fixes:
TL-13902 Updated the title for the seminar event 'more info' page for attendees
Previously the header title text used on the 'more info' page for a seminar
event said 'Sign up for [seminar name]' even if a user was already signed
up.
This has been fixed to show just the seminar name if the user is an
attendee.
TL-14355 Fixed validation for menu type audience rules
Previously audience rules using the menu interface were lacking validation
on empty submissions, so if you attempted to save without selecting a value
there would be an exception thrown, a broken rule would be added, and you
would be redirected away from the page, which meant that you would have to
navigate back and remove the rule. Now the form submission is halted and a
warning is shown to enter a value.
Affected audience rules are:
* position type
* position menu customfields
* organisation type
* organisation menu customfields
* user menu customfields
TL-19820 Fixed bugs in quiz 'Review options' marks settings
A quiz can be set to hide marks (grade) from learners at various times,
using the 'Review options' checkboxes in quiz settings. For example, a quiz
can withhold a learner's grade until the quiz has closed.
Prior to this patch, the 'Review options' marks setting also affected the
recording of activity completion. If marks were hidden from the learner,
then activity completion was recorded as 'Complete' when all conditions
were met, rather than as 'Complete with pass' or 'Complete with fail'.
Activity completion was not updated later if the marks became visible to
the learner, and was not consistent with the way grades are recorded:
grades are always visible to a trainer, whether learners can see them or
not.
With this patch, quizzes (or any other activities with grade items hidden
from learners) are always marked as 'Complete with pass' or 'Complete with
fail' if a grade is required for completion. When learners view the course
homepage, activity completion tick marks are modified to hide pass/fail
status if the grade is hidden. Trainers will always see the true status.
This patch also ensures that grade items are correctly show/hidden
according to a quiz's 'Review options' marks settings, with the exception
that grades that have already been revealed are not hidden later.
TL-20148 Fixed a web services error that occurred when the current language resolved to a language that was not installed
TL-20149 Fixed secondary navbar not showing when browsing third level child page
TL-20258 Fixed incorrectly appended context links when sending alerts
Prior to this patch messages sent as alerts could, in some cases, have
superfluous text appended related to context links.
TL-20448 Fixed a display issue with conditional access when audience, position, or organisation restrictions were in use
Prior to this fix in situations where a restriction set contained an
audience, position or organisation restriction the controls for
manipulating the restriction set would be hidden, making it impossible to
edit the restriction set.
TL-20466 The approveanyrequest capability is now correctly checked when processing a seminar approval request
Users who hold the 'mod/facetoface:approveanyrequest' capability previously
would encounter an error when attempting to approve a signup request in a
context where they held the capability but did not meet any other required
conditions.
This has been fixed to ensure that the capability is correctly checked when
processing a users approval request.
TL-20467 MDL-57486: Delete items when context already deleted
TL-20468 The grade overview report now correctly respects audience based visibility
TL-20475 Fixed seminar grades not being correctly updated when the override flag is removed on a gradebook
The third argument of facetoface_update_grades() was changed as follows.
In previous releases, the system set NULL as grade if true is passed.
From now on, the system sets a default grade if true is passed.
The default grade is calculated by using grading method in T13, and the
last saved attendance state in T12.
TL-20482 Fixed 'View dates' link on program/certification assignment page
TL-19190 introduced a regression where clicking on the 'View dates' link
against a group assignment on the assignments page would display a pop-up
with all the users assigned to the program. This has now been fixed and
only users from the specific assigned group are displayed.
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20500 Fixed a bug where a manual data purge of certification assignments and completion did not purge deleted users' records
TL-20504 Made sure that learning plan access is being checked before sending out comment notifications
Previously, any user that interacted with a learning plan by leaving a
comment would continue to receive notifications about other users' comments
to the plan, even if the user no longer had access to the plan. Now only
plan owners, active managers, and users with the
'totara/plan:accessanyplan' and 'totara/plan:manageanyplan' capabilities
receive notifications about new comments.
TL-20515 Fixed bug that could leave a job assignment linked to seminar signup records after the job assignment was deleted
TL-20522 Fixed IE11 visual bugs and broken buttons when editing the administration menu
TL-20523 Fixed the display of site logs for legacy seminar status codes
TL-20526 Check course setting and 'grade:view' capability in course details
Previously the report-based course catalogue displayed grades for all
completed courses without taking into account the "Show gradebook to
learners" course setting or the 'moodle/grade:view' capability of a report
viewer. This has now been fixed.
TL-20534 Fixed a bug preventing grid catalogue filters from properly recognising unicode characters
Previously grid catalogue filters were unable to identify courses to list
when a course custom multi-select field contained options with unicode
characters, e.g. Matěj, Dvořák. This patch fixes the search
functionality so that options with unicode characters can be correctly
identified.
TL-20535 Included helptooltip as a dialog-nobind class condition in totara_dialog.js
TL-20568 Fixed misleading 'not answered' text for appraisal questions
TL-20052 was supposed to fix this; however that patch was found to address
the case when only the learner needed to answer questions. The bug still
occurred if the appraisal had a mix of questions and permissions that other
roles need to answer.
This patch fixes the latter problem.
TL-20586 Fixed event generation when deleting hierarchy items
Prior to the patch the same event was generated for all descendant
hierarchy items when deleting an item with children.
As a side effect this patch fixes course activity access restrictions based
on a position or organisation. Prior to the patch if a child position or
organisation was used to restrict access to a course activity and then its
parent was deleted, the restriction setup menu for this activity was
broken.
TL-20592 Removed block display when restoring an activity backup
Blocks are not displayed while restoring a course backup, because users are
expected to move though the restore workflow using the navigation buttons
at the bottom of the screen, and because the 'Add a block' feature doesn't
work during restore.
Because of a bug, blocks had been displayed while restoring an activity
backup. This has been fixed, and no blocks should display during any type
of multiple-step restore.
A renderer bug that resulted in an unclosed div tag on the second screen
of the restore process has also been fixed.
TL-20598 Fixed the available actions on seminar attendees pages so they respect the 'mod/facetoface:addattendees' capability
Prior to this patch, both the 'add' and 'remove' attendees options were
shown in the drop-down menu on the seminar event attendees pages, even if a
user only had the 'mod/facetoface:removeattendees' capability.
The 'add attendees' option will now only be displayed for users with
'mod/facetoface:addattendees' capability.
TL-20609 Fixed an issue in the main menu where a certain combination of preset rules caused an infinite loop
TL-20634 Improved security and transparency of seminar 'Message users' feature
In previous versions, any user who had the seminar 'Take attendance'
capability could use the 'Message users' form to see attendee email
addresses and send messages to one or more attendees.
'Message users' has been changed to require three permissions in the
context of the seminar activity: 'Send messages to any user'
(moodle/site:sendmessage), 'Send a message to many people'
(moodle/course:bulkmessaging) and 'View attendance list and attendees'
(mod/facetoface:viewattendees). These permissions continue to be enabled by
default for trainers and editing trainers.
Also, when a user views the 'Message users' form, a 'Messages users viewed'
event is logged. When the form is used to send messages, a 'Message sent'
event is logged.
TL-20635 Fixed the destination for the 'room name link' column in seminar reports
Recent improvements to seminars changed the destination of the links to the
rooms edit page, which can only be accessed by certain roles. The link now
directs users to a less-restricted 'view details' page again.
TL-20637 Fixed 'Bulk add attendees' form when signup capability is disabled for learner role
When the learner role had the 'Sign-up for an event' capability disabled,
it was not possible for an administrator to add a learner to a seminar
event. The system now checks the permissions of the person who is
performing the action, rather than the permissions of the person being
signed up.
TL-20638 Ensured that quiz question ids are unique when they are rendered on the page
Previously, when a quiz question was displayed, the outer div of the
question had an id="q123" added. Unfortunately, this id was not unique in
all cases which lead to the issues in manual grading where multiple
responses for the same question were displayed. This has now been fixed.
TL-20643 Ensured HR Import checks for unique user profile fields are not performed on empty or null values
User custom fields that are set as being unique where the source value is
an empty string or null are no longer included in the checks to ensure
uniqueness.
Previously where multiple records contained empty strings where uniqueness
was being enforced, the entire user record was failing and not imported.
TL-20661 Fixed sending of activation emails for all of manager's appraisals
Previously upon appraisal activation, a manager would only receive one
email, regardless of how many appraisees they had. This was true even if
the activation notification content explicitly included appraisee details,
e.g. appraisee full name.
This patch fixes this; now the manager gets emails for individual
appraisees. However, if the message is a generic one (i.e. one that did not
have placeholders to differentiate emails to different people), then they
will still only get one email.
Note: the one generic email per manager only happens if all the appraisees
automatically get a job assignments upon appraisal activation (i.e.
multiple job assignments is off). If the appraisee still has to view the
appraisal to indicate the job assignment, then the manager will receive
multiple generic emails each time their appraisee first views an appraisal.
TL-20668 Primary admin and web service users are no longer required to provide their required profile fields information
TL-20670 Fixed infinite recursion when generating API documentation
TL-20681 Made sure course completion value in the Record of Learning report export doesn't contain HTML
TL-20683 Fixed totara core upgrade to avoid using the system API
Prior to this patch, the upgrade path for evergreen was using system API,
which was involving the user session to perform actions. Therefore, it
failed to upgrade to evergreen from CLI.
With this patch, it is possible to upgrade to evergreen with CLI.
TL-20689 Fixed the display of submission grade and status in the "Assignment submission" report
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20703 Fixed incorrect offset when creating a user tour targeting the main navigation
TL-20712 Fixed feedback preview with a "pagebreak" item at the top on the page
TL-20720 Fixed issue with grades been saved as 0.0000 on seminar table
Since Totara 12.0, seminar grades have been saved as 0.0000 in the
facetoface_signups_status table, regardless of attendance state.
Gradebook grades were not affected by this bug.
Previous versions correctly set the grade field to null until attendance
was taken, and then set it to a grade based on attendance. This patch fixes
the regression. In summary:
* The correct grade value will always be saved into
facetoface_signups_status table, regardless of seminar grade settings
* If attendance state is 'Not set' when taking attendance, the grade field
will be set to null
* Incorrect facetoface_signups_status grade values will be rewritten with
a correct value, based on attendance state, during this upgrade
* If the system detects backup data made with any affected version during
course or activity restore, the correct grade will be used instead of the
backed-up grade
TL-20727 Ensure email notifications work correctly in HR Import after upgrade
Upgrading to Totara 12 or 13 from Totara 11 or earlier may have stopped
email notification from being sent in HR Import. This change ensures that
they are sent correctly.
TL-20747 Restored 'Update all activities' functionality for custom seminar notification templates
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
TL-20764 Added horizontal scroll bar to user multiselect
This will not work in IE11 or Firefox (Due to
https://bugzilla.mozilla.org/show_bug.cgi?id=1294313).
TL-20773 Fixed unit test failure for third-party activity plugins that do not support Totara generators
TL-20779 Removed redundant database update call in Learning Plan Evidence
TL-20794 Added missing format value on Seminar 'Download sign-in sheet' hidden field
API changes:
TL-20572 Improved in-code documentation for the recommends_counted_recordset() method
Previously the documentation contained a link to our internal tracked.
This has been removed as it is not accessible to those outside of the
Totara development team.
Additionally performance testing results have been directly added to the
base method as defined in the moodle_database class.
Miscellaneous Moodle fixes:
TL-15552 MDL-57769: Remove 'numsections' from topics and weeks, allow teachers to create and delete sections as they are needed
This patch does not remove the 'numsections' setting from the topics and
weeks course formats, but it does make it optional for other course
formats. It also implements section management methods expected by
third-party course format plugins.
TL-20563 MDL-61950: Fixed display of random questions in the statistics calculator in the quiz module
Prior to this patch, if a quiz had random questions in it, then viewing the
statistics report would sometimes have questions missing from the report.
Contributions:
* Haitham Gasim - Kineo USA - TL-20794
* Kineo UK - TL-20751
* Think Learning - TL-20764
Release 11.14 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20607 Improved HTML sanitisation of Bootstrap tool-tips and popovers
An XSS vulnerability was recently identified and fix in the Bootstrap 3
library that we use.
The vulnerability arose from a lack of sanitisation on attribute values for
the popover component.
The fix developed by Bootstrap has now been cherry-picked into all affected
branches.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
TL-20622 Totara form editor now consistently cleans content before loading it into the editor
Improvements:
TL-20147 Improved the help text in programs and certifications by specifying that course scores have to be whole numerical values.
TL-20516 Changed ambiguous wording for confirmation button in the appraisal unlock stage page
In the appraisal unlock stage page, the confirmation button had potentially
confusing text. It was not clear that clicking 'Save changes' without
making any changes on the form would still have some effect. This patch
changes the wording to 'Apply' instead.
Also, the unlock stage interface on the Appraisal Assignments page has been
improved.
TL-20517 Improved compatibility with Solr 7
TL-20537 Added an event for enabling and disabling authentication methods
Prior to this patch, when an admin enabled or disabled an authentication
method, there was no event triggered. This patch adds an event there for
auditing purposes.
TL-20538 Added enable/disable course end date to course defaults
Added a new setting in the course defaults page to enable/disable the
course end date by default when creating a new course.
TL-20610 Added event triggers for changing site administration group
Prior to this patch, when an admin assigned users to or unassigned users
from the site administration group, then there was no event to be
triggered, and consequently, the system was not able to log the event.
This patch introduces a new event triggered by changes to the site
administration group, allowing the system to be able to log the event.
TL-20640 Added the ability to unlock all roles in an appraisal at once
Before this change, when an appraisal was unlocked for a specific role in a
user's appraisal, all roles could make changes to their answers at the
given stage (within the normal appraisal rules), but only the unlocked role
was required to mark each stage complete again. With this change, a new
option 'All roles' is available, and when selected every role will be
required to mark each unlocked stage complete again. This change was
accidentally left out of last month's release.
TL-20674 Added a 'scheduled task updated' event to log changes to scheduled tasks
TL-20705 Improved validation for checkbox audience rules
As part of server-side validation of audience rule forms, this now checks
that a value has been submitted and that it is either 0 (not checked) or 1
(checked).
TL-20710 Feedback activity UI for editing questions now reflects actual question and page break order
Previously, when dragging an item and dropping it outside of appropriate
drop zone, the UI would change however the database was not updated to
reflect the change. Now when the item is dropped outside of the
appropriate drop zone, the item will snap back to the point of origin.
Bug fixes:
TL-13902 Updated the title for the seminar event 'more info' page for attendees
Previously the header title text used on the 'more info' page for a seminar
event said 'Sign up for [seminar name]' even if a user was already signed
up.
This has been fixed to show just the seminar name if the user is an
attendee.
TL-14355 Fixed validation for menu type audience rules
Previously audience rules using the menu interface were lacking validation
on empty submissions, so if you attempted to save without selecting a value
there would be an exception thrown, a broken rule would be added, and you
would be redirected away from the page, which meant that you would have to
navigate back and remove the rule. Now the form submission is halted and a
warning is shown to enter a value.
Affected audience rules are:
* position type
* position menu customfields
* organisation type
* organisation menu customfields
* user menu customfields
TL-19820 Fixed bugs in quiz 'Review options' marks settings
A quiz can be set to hide marks (grade) from learners at various times,
using the 'Review options' checkboxes in quiz settings. For example, a quiz
can withhold a learner's grade until the quiz has closed.
Prior to this patch, the 'Review options' marks setting also affected the
recording of activity completion. If marks were hidden from the learner,
then activity completion was recorded as 'Complete' when all conditions
were met, rather than as 'Complete with pass' or 'Complete with fail'.
Activity completion was not updated later if the marks became visible to
the learner, and was not consistent with the way grades are recorded:
grades are always visible to a trainer, whether learners can see them or
not.
With this patch, quizzes (or any other activities with grade items hidden
from learners) are always marked as 'Complete with pass' or 'Complete with
fail' if a grade is required for completion. When learners view the course
homepage, activity completion tick marks are modified to hide pass/fail
status if the grade is hidden. Trainers will always see the true status.
This patch also ensures that grade items are correctly show/hidden
according to a quiz's 'Review options' marks settings, with the exception
that grades that have already been revealed are not hidden later.
TL-20148 Fixed a web services error that occurred when the current language resolved to a language that was not installed
TL-20258 Fixed incorrectly appended context links when sending alerts
Prior to this patch messages sent as alerts could, in some cases, have
superfluous text appended related to context links.
TL-20448 Fixed a display issue with conditional access when audience, position, or organisation restrictions were in use
Prior to this fix in situations where a restriction set contained an
audience, position or organisation restriction the controls for
manipulating the restriction set would be hidden, making it impossible to
edit the restriction set.
TL-20467 MDL-57486: Delete items when context already deleted
TL-20468 The grade overview report now correctly respects audience based visibility
TL-20482 Fixed 'View dates' link on program/certification assignment page
TL-19190 introduced a regression where clicking on the 'View dates' link
against a group assignment on the assignments page would display a pop-up
with all the users assigned to the program. This has now been fixed and
only users from the specific assigned group are displayed.
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20500 Fixed a bug where a manual data purge of certification assignments and completion did not purge deleted users' records
TL-20504 Made sure that learning plan access is being checked before sending out comment notifications
Previously, any user that interacted with a learning plan by leaving a
comment would continue to receive notifications about other users' comments
to the plan, even if the user no longer had access to the plan. Now only
plan owners, active managers, and users with the
'totara/plan:accessanyplan' and 'totara/plan:manageanyplan' capabilities
receive notifications about new comments.
TL-20515 Fixed bug that could leave a job assignment linked to seminar signup records after the job assignment was deleted
TL-20526 Check course setting and 'grade:view' capability in course details
Previously the report-based course catalogue displayed grades for all
completed courses without taking into account the "Show gradebook to
learners" course setting or the 'moodle/grade:view' capability of a report
viewer. This has now been fixed.
TL-20535 Included helptooltip as a dialog-nobind class condition in totara_dialog.js
TL-20568 Fixed misleading 'not answered' text for appraisal questions
TL-20052 was supposed to fix this; however that patch was found to address
the case when only the learner needed to answer questions. The bug still
occurred if the appraisal had a mix of questions and permissions that other
roles need to answer.
This patch fixes the latter problem.
TL-20586 Fixed event generation when deleting hierarchy items
Prior to the patch the same event was generated for all descendant
hierarchy items when deleting an item with children.
As a side effect this patch fixes course activity access restrictions based
on a position or organisation. Prior to the patch if a child position or
organisation was used to restrict access to a course activity and then its
parent was deleted, the restriction setup menu for this activity was
broken.
TL-20592 Removed block display when restoring an activity backup
Blocks are not displayed while restoring a course backup, because users are
expected to move though the restore workflow using the navigation buttons
at the bottom of the screen, and because the 'Add a block' feature doesn't
work during restore.
Because of a bug, blocks had been displayed while restoring an activity
backup. This has been fixed, and no blocks should display during any type
of multiple-step restore.
A renderer bug that resulted in an unclosed div tag on the second screen
of the restore process has also been fixed.
TL-20638 Ensured that quiz question ids are unique when they are rendered on the page
Previously, when a quiz question was displayed, the outer div of the
question had an id="q123" added. Unfortunately, this id was not unique in
all cases which lead to the issues in manual grading where multiple
responses for the same question were displayed. This has now been fixed.
TL-20661 Fixed sending of activation emails for all of manager's appraisals
Previously upon appraisal activation, a manager would only receive one
email, regardless of how many appraisees they had. This was true even if
the activation notification content explicitly included appraisee details,
e.g. appraisee full name.
This patch fixes this; now the manager gets emails for individual
appraisees. However, if the message is a generic one (i.e. one that did not
have placeholders to differentiate emails to different people), then they
will still only get one email.
Note: the one generic email per manager only happens if all the appraisees
automatically get a job assignments upon appraisal activation (i.e.
multiple job assignments is off). If the appraisee still has to view the
appraisal to indicate the job assignment, then the manager will receive
multiple generic emails each time their appraisee first views an appraisal.
TL-20668 Primary admin and web service users are no longer required to provide their required profile fields information
TL-20689 Fixed the display of submission grade and status in the "Assignment submission" report
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20712 Fixed feedback preview with a "pagebreak" item at the top on the page
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
TL-20764 Added horizontal scroll bar to user multiselect
This will not work in IE11 or Firefox (Due to
https://bugzilla.mozilla.org/show_bug.cgi?id=1294313).
TL-20794 Added missing format value on Seminar 'Download sign-in sheet' hidden field
API changes:
TL-20572 Improved in-code documentation for the recommends_counted_recordset() method
Previously the documentation contained a link to our internal tracked.
This has been removed as it is not accessible to those outside of the
Totara development team.
Additionally performance testing results have been directly added to the
base method as defined in the moodle_database class.
Miscellaneous Moodle fixes:
TL-20563 MDL-61950: Fixed display of random questions in the statistics calculator in the quiz module
Prior to this patch, if a quiz had random questions in it, then viewing the
statistics report would sometimes have questions missing from the report.
Contributions:
* Haitham Gasim - Kineo USA - TL-20794
* Kineo UK - TL-20751
* Think Learning - TL-20764
Release 10.20 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20607 Improved HTML sanitisation of Bootstrap tool-tips and popovers
An XSS vulnerability was recently identified and fix in the Bootstrap 3
library that we use.
The vulnerability arose from a lack of sanitisation on attribute values for
the popover component.
The fix developed by Bootstrap has now been cherry-picked into all affected
branches.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
TL-20622 Totara form editor now consistently cleans content before loading it into the editor
Improvements:
TL-20705 Improved validation for checkbox audience rules
As part of server-side validation of audience rule forms, this now checks
that a value has been submitted and that it is either 0 (not checked) or 1
(checked).
Bug fixes:
TL-12258 Backport from TL-19936 to fix custom rating default value.
Without the backport, when the admin views an activated appraisal, all the
previously selected default values for a custom rating question would show.
With the backport, only the current default value will be shown.
TL-14355 Fixed validation for menu type audience rules
Previously audience rules using the menu interface were lacking validation
on empty submissions, so if you attempted to save without selecting a value
there would be an exception thrown, a broken rule would be added, and you
would be redirected away from the page, which meant that you would have to
navigate back and remove the rule. Now the form submission is halted and a
warning is shown to enter a value.
Affected audience rules are:
* position type
* position menu customfields
* organisation type
* organisation menu customfields
* user menu customfields
TL-20148 Fixed a web services error that occurred when the current language resolved to a language that was not installed
TL-20482 Fixed 'View dates' link on program/certification assignment page
TL-19190 introduced a regression where clicking on the 'View dates' link
against a group assignment on the assignments page would display a pop-up
with all the users assigned to the program. This has now been fixed and
only users from the specific assigned group are displayed.
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20515 Fixed bug that could leave a job assignment linked to seminar signup records after the job assignment was deleted
TL-20526 Check course setting and 'grade:view' capability in course details
Previously the report-based course catalogue displayed grades for all
completed courses without taking into account the "Show gradebook to
learners" course setting or the 'moodle/grade:view' capability of a report
viewer. This has now been fixed.
TL-20558 Fixed mismatching date format patterns in the Excel writer
Previously when exporting report builder reports to Excel, any dates that
were not otherwise explicitly formatted would be displayed in the mm/dd/yy
format, regardless of the user's locale. These dates are now formatted to a
default state so that they are displayed as per the user's operating system
locale when opening the Excel file.
Note: This is a backport of TL-18858
TL-20586 Fixed event generation when deleting hierarchy items
Prior to the patch the same event was generated for all descendant
hierarchy items when deleting an item with children.
TL-20638 Ensured that quiz question ids are unique when they are rendered on the page
Previously, when a quiz question was displayed, the outer div of the
question had an id="q123" added. Unfortunately, this id was not unique in
all cases which lead to the issues in manual grading where multiple
responses for the same question were displayed. This has now been fixed.
TL-20689 Fixed the display of submission grade and status in the "Assignment submission" report
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
Contributions:
* Kineo UK - TL-20751
Release 9.31 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20607 Improved HTML sanitisation of Bootstrap tool-tips and popovers
An XSS vulnerability was recently identified and fix in the Bootstrap 3
library that we use.
The vulnerability arose from a lack of sanitisation on attribute values for
the popover component.
The fix developed by Bootstrap has now been cherry-picked into all affected
branches.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
TL-20622 Totara form editor now consistently cleans content before loading it into the editor
Bug fixes:
TL-12258 Backport from TL-19936 to fix custom rating default value.
Without the backport, when the admin views an activated appraisal, all the
previously selected default values for a custom rating question would show.
With the backport, only the current default value will be shown.
TL-20148 Fixed a web services error that occurred when the current language resolved to a language that was not installed
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20586 Fixed event generation when deleting hierarchy items
Prior to the patch the same event was generated for all descendant
hierarchy items when deleting an item with children.
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
Contributions:
* Kineo UK - TL-20751
Release 2.9.42 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
Bug fixes:
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20700 Fixed misleading count of users with role
A user can be assigned the same role from different contexts. The Users
With Role count was incorrectly double-counting such instances leading to
inaccurate totals being displayed. With this fix the system counts only the
distinct users per role, not the number of assignments per role.
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
Contributions:
* Kineo UK - TL-20751
Release 2.7.50 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20614 Removed session key from page URL on seminar attendance and cancellation note editing screens
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
Bug fixes:
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
TL-20751 Fixed 'fullname' column option in user columns to return NULL when empty
Previously the column returned a space character when no value was
available which prevented users from applying "is empty" filter
Contributions:
* Kineo UK - TL-20751
Release 2.6.67 (29th April 2019):
Security issues:
TL-20532 Fixed a file path serialisation issue in TCPDF library
Prior to this fix an attacker could trigger a deserialisation of arbitrary
data by targeting the phar:// stream wrapped in PHP.
In Totara 11, 12 and above The TCPDF library has been upgraded to version
6.2.26.
In all older versions the fix from the TCPDF library for this issue has
been cherry-picked into Totara.
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
Bug fixes:
TL-20488 Added batch processing of users when being unassigned from or reassigned to a program
Release 2.5.73 (29th April 2019):
Security issues:
TL-20615 Fixed external database credentials being passed as URL parameters in HR Import
When using the HR Import database sync, the external DB credentials were
passed to the server via query parameters in the URL. This meant that these
values could be unintentionally preserved in a user's browser history, or
network logs.
This doesn't pose any risk of compromise to the Totara database, but does
leave external databases vulnerable, and any other services that share its
credentials.
If you have used HR Import's external database import, it is recommended
that you update the external database credentials, as well as clear browser
histories and remove any network logs that might have captured the
parameters.
