Configuring Moodle: WISC integration plugins


UW-Madison is adopting Canvas as the single, centrally supported learning management system, and discontinuing support for Desire2Learn (D2L) and Moodle. Access to D2L and Moodle will permanently end June 1, 2018. For information about retaining materials from D2L or Moodle, please refer to this document.

This document describes how to configure Moodle for NetID login, UW accounts, and CHUB class rosters.

Downloads via subversion:

WISC Services plugin

WISC Enrollment plugin


  • Install the WISC Services plugin into /local/wiscservices
  • Install the WISC Enrollment plugin into /enrol/wisc
  • Visit the Moodle notifications page to complete the installation.


WISC Services

These settings are in Plugins->Local plugins->WISC services plugin

  • People Picker Server URL - The DoIT People Picker SOAP URL.  The default should be used for production sites.
  • People Picker Username - Your People Picker/CHUB account username.
  • People Picker Password - Your People Picker/CHUB account password.
  • Auhentication plugin - What authentication plugin will be used for NetID logins.  Typically this is "Shibboleth".
  • Qualified username - If Yes, the moodle username for NetID accounts will be of the form "", otherwise it'll just be "netid".  Enabling this setting is recommended as it reduces the chance of NetID accounts conflicting with non-NetID accounts.
  • Removed ext user - Whether to remove moodle accounts that don't exist anymore in the datafeed.  At engineering we keep this at "Keep internal" most of the time to avoid accidentally removing users if there are problems with the datafeed.  If a single "purge" is desired, then change this to Delete, run the CLI user sync (see below), and then change the setting back.
  • Development server - If set, NetID account email addresses will be set to the moodle no-reply address.  This is useful for testing.

To test the WISC Services plugin configuration, view the page http://yourserver/local/wiscservices/test.php

WISC Enrollment

These settings are in Plugins->Enrollments->Manage enroll plugins -> WISC enrollments settings.
  • CHUB Server URL - The DoIT CHUB SOAP URL.  The default should be used for production use.
  • CHUB Username - Your People Picker/CHUB account username
  • CHUB Password - Your People Picker/CHUB account password
  • Role settings - These define the mapping from UW course roles to moodle roles
  • Allow duplicate associations - If no, then the course creation interface prevents a single timetable section from being included in multiple moodle courses.
  • Skip enrollments in hidden courses - Whether to skip student enrollments if a course or category is hidden.
  • External unenrol action - How to handle students that have dropped after the course has begin.  If set to "Disable course enrollment", dropped students will be prevented from entering the course, but moodle with retain their state in the gradebook and activities.
  • Default course creation capabilities - What UW roles should be allowed to create courses on their own.  This setting controls access to the "Courses->Create a New UW Course" menu item based on UW role.  We do it this was so that Faculty, for example, can be given the course creation ability without having to create and maintain a moodle role containing all faculty.  If only certain individuals should be able to create courses on the site, then make all of these setting none, and give individual users the "Course Creator" moodle role.
  • New course settings - Controls the course category for new courses created via the UW course creator.

Finally be sure to enable the WISC enrollment plugin in moodle.

To test the WISC Enrollment plugin configuration, view the page http://yourserver/enrol/wisc/test.php

Shibboleth NetID login

These settings are in Plugins->Authentication->Manage authentication->Shibboleth Settings.

  • Username - Set this to eppn if qualified usernames are enabled in WISC services plugin (recommended) or uid otherwise
  • Identity providers - /Shibboleth.sso/DS
  • Shibboleth Service Provider logout handler URL - /Shibboleth.sso/Logout?return=
  • Authentication method name - NetID Login
  • Data mapping:
    • First Name lock value - Unlocked if empty
    • Last Name lock value - Unlocked if empty
    • Email lock value - Unlocked if empty
    • ID number - wiscEduPVI
    • ID number update local - On Creation
    • ID number lock value - Locked
  • Optional: If you know that your shibboleth configuration supports addition attributes, it's possible to set those here as well to be processed during login.  This is optional, as the WISC services plugin will query People Picker to fill in name and email during account creation.
  • Install an htaccess file in auth/shibboleth:  (See the Moodle Shibboleth Docs)
<Files index.php>
    AuthType shibboleth
    ShibRequireSession On
    require valid-user
  • Enable the shibboleth auth plugin in moodle.

To test the shibboleth plugin, visit the URL http://yourserver/auth/shibboleth/index.php directly.  This should take you to the DoIT NetID login page, and then create an account in moodle and log you in.  Later when shibboleth is working you can place this link in the Moodle login instructions area so that users can click on it to login via NetID.

Using the WISC login chooser:
  The WISC login chooser is an alternate Moodle login page that is customized to allow NetID, local, and guest logins.  To use it, set the moodle "Alternate login URL" to the URL https://yourserver/local/wiscservices/login/index.php

CRON setup

The are two cron jobs that need to be run from a CLI php process on the server:

Course enrollment sync:   enrol/wisc/cli/sync.php
User sync:  local/wiscservices/cli/syncusers.php

The course enrollment script can be run hourly; it will only make changes when CHUB has new data.  (Currently CHUB updates about 4 times a day.)  The User sync script updates all NetID accounts and can take a long time to run for large sites.  We suggest running the user sync script nightly.  Note that with moodle, all cli jobs should be run as the webserver user.

 Example system crontab, including the moodle cron:
*/15 * * * *    www-data   /usr/bin/php  /var/www/moodle/admin/cli/cron.php 2>&1 | /usr/bin/logger -i -t moodle
10 * * * *      www-data   /usr/bin/php   /var/www/moodle/enrol/wisc/cli/sync.php 2>&1 | /usr/bin/logger -i -t moodle
20 3 * * *      www-data   /usr/bin/php /var/www/moodle/local/wiscservices/cli/syncusers.php 2>&1 | /usr/bin/logger -i -t moodle

Keywords:moodle WISC peoplepicker CHUB 2.1, 2.2, 2.3   Doc ID:22458
Owner:Matt P.Group:Moodle
Created:2012-01-28 14:23 CDTUpdated:2018-03-05 17:56 CDT
Sites:DoIT Help Desk, Moodle
Feedback:  2   2