Microsoft 365 Integration

Local plugins ::: local_o365
Maintained by Enovation Dev Team, Lai Wei, Patryk Mroczko
Part of set Microsoft 365.
This plugin provides libraries and services that power other Microsoft 365 plugins.

Microsoft 365 Integration 3.10.6

Moodle 3.10
Released: ataasinngorneq den 11. apriilip 2022, 21:17

This is part of the 3.10.6 release of the Microsoft 365 Moodle plugin suite for Moodle 3.10, version v20220411_m310.

Complete Release Note: https://github.com/microsoft/o365-moodle/releases/tag/v20220411_m310

NOTE - This is a major upgrade of the plugins, and requires Azure app changes. Refer to this page for Azure app change details.

Changes in the local_o365 plugin in this release include: - Teams Classes LTI app support: Major change in the Moodle course and Microsoft Teams integration feature to support Teams Classes LTI. - Drop "System API user" connection method: The only connection method supported going forward is application access. - Multi-tenant SSO alternative domain name support: Support login of additional tenant users whose UPN contains non-initial domain names. - Other bug fixes and small changes.

Teams Classes LTI app support

This release contains a complete rewrite of the course sync feature in the plugins. The main changes include: - Renamed the "Create user groups in Microsoft 365" (\local_o365\task\groupcreate) scheduled task to "Sync Moodle courses to Microsoft Teams" (\local_o365\task\coursesync). - The option to sync a Moodle course to groups only but not Teams is removed. If a sync of a course is enabled, it will always sync to a group, and a Team if a suitable owner is found. - The decision whether to create a standard team or a class team is controlled by whether the hosting tenant has an education license, rather than configuration setting made by Moodle site admin. The check to determine whether the hosting tenant has an education license is performed automatically by the plugin using Graph API calls. - The Graph APIs used to create/update/archive/delete groups/teams connected to Moodle courses, as well as those used to manage initial and subsequent group/team ownership/membership changes, are all updated according to LMS integration guidelines provided by Microsoft. Notably, the integration will always create a group first, and try to create a Team from the group when appropriate Team owner is found. - If the hosting tenant has an education license, additional education specific attributes will be stamped in the group created, which will allow Moodle users use the Teams Classes LTI app by adding the Team as an external tool in the course using mod_lti.

NOTE this requires several configuration changes in both local_o365 settings and Azure app permissions. Refer to this page for Azure app change details.

Drop "System API user" connection method

The support for "System API user" connection method has officially ended since this release. The decision was made for two main reasons: - Increasing number of Graph APIs used in the integration support only application permissions, which effectively means the feature cannot be achieved if "System API user" connection is selected, which would depend on delegated permissions. - Using the "System API user" connections for Teams integration has the unexpected outcomes that the system API user is added as owner of all Teams created. Most Moodle site should be using "Application access" connection method now, which are unaffected by this change. For those sites currently using "System API user" connection method, site admins will be given the chance to make the change. Changes in Azure app permissions may be required as part of the migration.

Multi-tenant SSO alternative domain name support

Previously SSO integration for additional tenants stores only the original domain name of the additional tenants (the one used when creating the tenant), and if users from the additional tenants are created using UPN other than the original domain name, the users are not being recognised in the multi-tenant SSO process.

This release introduces a change to save the ID of the additional tenant, along with all registered domains, so that users from additional tenants can be recognised regardless the domain name in their UPN.

NOTE this requires Moodle site admins updating multi-tenant configurations.

Bug fixes and small changes

  • Improvement in handling sync of Outlook calendar all day events into Moodle.
  • Fix error output on the SDS sync configuration page when Moodle and Microsoft 365 integration is not fully configured.
  • Update the logic used to allow only one run of user suspension/deletion part in the user sync task.
  • Prevent duplicate user mapping records being create.
  • Bug fix in the Graph API call to list teams.
  • Bug fix in the observer function to delete group/team when the connected Moodle course is deleted.
  • Bug fix in database queries handling empty return values in SDS and user sync features.
  • Fix broken upgrade script in the local_o365 plugin.
  • Move profile photo sync and timezone sync from block_microsoft to observer functions in local_o365.
  • Bug fix in handling response in some Graph API calls that paginate response values using skip tokens.
  • Force a user sync task run after the Azure application ID site configuration is updated, in order to rebuild user connection records.
  • Prevent various local_o365 scheduled tasks from failing when the Moodle and Microsoft 365 integration is not fully configured.
  • Update PowerShell script to create new Azure app with required permissions.
  • Update validation of the sync of language profile fields in user sync.
  • Clean up old SDS schools disabled for sync.
  • Remove hardcoded role checks in bot question implementations.
  • Add missing delegated permission check required by the calendar sync.
  • Fix UI for the "Provide admin consent" button on local_o365 configuration page.

Version information

Version build number
2020110938
Version release name
3.10.6
Maturity
Stabil version
MD5 Sum
042ba8bfec6aa79b343bf544d7d2b314
Supported software
Moodle 3.10

Version control information

Version control system (VCS)
GIT
VCS repository URL
VCS tag
v3.10.6

Default installation instructions for plugins of the type Local plugins

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder in the "local" subdirectory.
  4. Visit http://yoursite.com/admin to finish the installation.