General plugins (Local): Microsoft Office 365 Integration

Maintained by Picture of James McQuillan James McQuillan, Picture of Zion Brewer Zion Brewer, Picture of Charles Verge Charles Verge, Picture of Nima Mojgani Nima Mojgani
This plugin provides libraries and services that power other Office 365 plugins.

Microsoft Office 365 Integration for Moodle 3.0

Picture of Mike Churchward
Mike Churchward
Thursday, 17 March 2016, 3:15 AM
General comments

Version reviewed:


The local Office 365 plugin is the cornerstone of the Office 365 integration it provides other Office 365 plugins with libraries and services they need. The plugin allows administrators to validate that the integration is functioning properly, synchronize users between Office 365 and Moodle, configure permissions and setup the sharepoint site for course files.


The integration works well and functions as designed. Administrators will want to take to the Moodle forums to ask questions if the integration doesn’t work after following the setup directions as there is little more for help documentation. Microsoft and Remote-Learner are actively improving the integration and as such you will need to review if you have the latest version of the plugin every few months if any errors arise.



The plugin is installed in the normal fashion for Moodle plugins either by cloning the plugin into the local directory from the github repository or downloading a zip and following the installation instructions:

  1. Unpack the plugin into /local/o365 within your Moodle install.

  2. From the Moodle Administration block, expand Site Administration and click "Notifications".

  3. Follow the on-screen instructions to install the plugin.

Once installed the administrator will want to follow all of the instructions to configure the plugin properly.


The plugin’s usability is specifically for an administrator. It allows for three different checks to be performed that determine if the Office 365 integration is functioning properly. These tests are:

  1. Check the health of the integration

  2. Upload a CSV file of how Moodle users match to Office 365 users

  3. Validate the Azure AD permissions are properly configured

The plugin is accessed via the System Administration block > Plugins > Local > Microsoft Office 365 Integration.  To check the health of the integration the administrator clicks on the Perform health check link. This will open a new page, which will advise the admin of any issues. The most common issue is that the administrative user password has changed and the password in Moodle needs to be updated.

To match users from Moodle to Office 365 the first step is to click on the user match link. From there you follow the onscreen instructions to upload a CSV file that lists Moodle usernames and their Office 365 email/username.

To validate that you have configured your Azure AD application properly for your settings an administrator clicks update button under  the Azure Setup area. If there are any missing permissions those are printed out for the administrator. If everything is set properly then a statement that the permissions are set properly is printed out.


The documentation for the plugin provided adequate information to configure the integration with Office 365 and what each of the settings and buttons are for. The documentation is outdated with some of the permissions that are required to be set in Azure AD for the integration to properly work.


  1. Check the health of the integration

  2. Upload a CSV file of how Moodle users match to Office 365 users

  3. Validate the Azure AD permissions are properly configured

  4. Automatically sync users from Office 365 to Moodle


No formal accessibility testing was done on this plugin. However, nothing has come up in our other tests to indicate a problem. In the future, we will be developing more formal accessibility testing suites and will redo them then.


Code Review:

Full code testing results

(Scores out of 2 - 2 = perfect; 1 = some concerns; 0 = problems.)
Tested for PHP 5.6 and 7 on both MySQL and Postgres. No version of technology problems were found. Score - 2.
Installation test (mpci install) - no problems. Score 2.
PHP syntax test (mpci phplint) - no problems. Score 2.
PHP copy/paste detector (mpci phpcpd) - Several minor duplications. Score 1.
PHP code complexity (mpci phmd) - generally code is okay. 37 files out of ~80 flagged with minor violations. Score - 1.
Moodle code guidelines (mpci codechecker) - Several minor Moodle coding guideline violations (30% of files violate). Score - 1.
CSS syntax test (mpci csslint) - 5 minor problems. Score 1.
JS syntax test (mpci jshint) - multiple errors identified. Score 0.
Moodle plugin structure test - Passed. Score - 2.
PHPUnit tests - 11 tests / 18 assertions / 7 fails. Score - 1.
Behat tests - No tests provided. Score - 0.
Total score 13 / 22 - 59%.  

Maintenance Review:

(Scores out of 2 - 2 = confident; 1 = nervous; 0 = concerned.)
Lifetime: Plugin has existed since January 2015 on version 2.7. Score - 1
Releases: Frequent releases to Moodle plugins DB, with the latest in March 2016. Score - 2
Maintainers: James McQuillan of Remote-Learner (former Moodle Partner) and Microsoft. Score - 2
Support Response: Has a component in Moodle Tracker. Uses Github tracker. Uses Moodle forums. Responds in plugins DB. Score - 2
Release timing: How quickly is a release made available to a major Moodle release? 3.0, 2.9, 2.8, 2.7 met criteria. Score - 2

 Total score 9 / 10 - 90%.