Auto assign cohort (deprecated for local_cohortauto)

Authentication ::: auth_mcae
Maintained by Dan Marsden, Catalyst IT
This Authentication plugin automatically assigns users into cohorts based on information in their user profile fields.

Auto assign cohort (deprecated for local_cohortauto) 2.9.4

Moodle 2.9
Released: Saturday, 28 November 2015, 11:51 PM

Autoenrol cohort authentication plugin for moodle 2.x

This authentication plugin automatically enrol users into cohorts.

Cohort name depends on user profile field.

Cohorts are created in CONTEXT_SYSTEM.

Installation

  • Download the archive and extract the files, or clone the repository from GitHub
  • Copy the 'mcae' folder into your_moodle/auth
  • Visit Site administration - Notifications page and follow the instructions

If you use an Email based self registration or similar plugin and users enrolls into cohort after second login copy/paste this code into moodle/themes/your_theme/layout/general.php (or default.php)

NOTE: Enable and configure mcae plugin first!

<?php

global $SESSION, $USER;

if ($USER->id != 0) { // Only for autenticated users
    $mcae = get_auth_plugin('mcae'); //Get mcae plugin

    if (isset($SESSION->mcautoenrolled)) {
        if (!$SESSION->mcautoenrolled) {
            $mcae->user_authenticated_hook($USER,$USER->username,""); //Autoenrol if mcautoenrolled FALSE
        }
    } else {
        $mcae->user_authenticated_hook($USER,$USER->username,""); //Autoenrol if mcautoenrolled NOT SET
    }
}

?>

Upgrade

  • Replace the your_moodle/auth/mcae folder with new one
  • Visit Site administration - Notifications page and follow the instructions
  • !!! If you update to version 2.9 you must rewrite templates! See configuration section.

Configuration

Template for cohort name

1 template per line.

In the template you may use any characters (except '{' and '}') and profile field values. To insert a profile field value, use {{ field_name }} tag.

An email field have 3 variants:

  • {{ email.full }} - full email
  • {{ email.username }} - only username
  • {{ email.domain }} - only domain
  • {{ email.rootdomain }} - root domain

By default moodle provides this fields

{{ id }}, {{ auth }}, {{ confirmed }}, {{ policyagreed }}, {{ deleted }}, {{ suspended }}, {{ mnethostid }}, {{ username }}, {{ idnumber }}, {{ firstname }}, {{ lastname }}, {{ email.full }}, {{ email.username }}, {{ email.domain }}, {{ email.rootdomain }}, {{ emailstop }}, {{ icq }}, {{ skype }}, {{ yahoo }}, {{ aim }}, {{ msn }}, {{ phone1 }}, {{ phone2 }}, {{ institution }}, {{ department }}, {{ address }}, {{ city }}, {{ country }}, {{ lang }}, {{ calendartype }}, {{ theme }}, {{ timezone }}, {{ firstaccess }}, {{ lastaccess }}, {{ lastlogin }}, {{ currentlogin }}, {{ lastip }}, {{ secret }}, {{ picture }}, {{ url }}, {{ descriptionformat }}, {{ mailformat }}, {{ maildigest }}, {{ maildisplay }}, {{ autosubscribe }}, {{ trackforums }}, {{ timecreated }}, {{ timemodified }}, {{ trustbitmask }}, {{ imagealt }}, {{ lastnamephonetic }}, {{ firstnamephonetic }}, {{ middlename }}, {{ alternatename }}, {{ lastcourseaccess }}, {{ currentcourseaccess }}, {{ groupmember }}

Additional tags become available if you have some custom profile fields. For example if you create custom profile fields

  • checkboxtest - type Checkbox
  • datetimetest - type Date/Time
  • droptest - type Dropdown menu
  • textinputtext - type Text input
  • and textareatest - type Text area

You be able to use this tags: {{ profile.checkboxtest }}, {{ profile.datetimetest }}, {{ profile.droptest }}, {{ profile.textinputtext }}, {{ profile_field_checkboxtest }}, {{ profile_field_datetimetest }}, {{ profile_field_droptest }}, {{ profile_field_textareatest.text }}, {{ profile_field_textareatest.format }}, {{ profile_field_textinputtext }}

Note: Profile field templates is case sensitive. {{ username }} and {{ UserName }} are two different fields!

Split arguments:

Synopsis: %split(fieldname|delimiter)

Returns multiple cohorts, each of which is formed by splitting field on boundaries formed by the delimiter.

Arguments:

  • fieldname - Profile field name. The same as tag, but without '{{' and '}}'
  • delimiter - The boundary string. 1 - 5 signs.

Example:

User John set custom profile field "Known languages" to "English, Spanish, Chinese"

Main template contains string "Language - %split(knownlanguage|, )"

John will be enrolled in 3 cohorts: Language - English, Language - Spanish and Language - Chinese

Replace empty field

If profile field is empty then it's replaced with this value.

Replacement array

You can change the cohort name after it's generation.

1 replacement per line, format - old value|new value

very long cohort name|shortname

Note: The name must not be longer than 100 characters or it will be stripped

Unenrol

Unenrol users from cohorts after profile change.

To use an unenrol feature:

  • Go to Plugins - Authentication - Autoenrol cohort and enable unenrol function
  • Go to yourmoodle/auth/mcae/convert.php and convert cohorts you want to "auth_mcae".

Convert only cohorts that are created by the "auth_mcae" module!

At yourmoodle/auth/mcae/convert.php page you may view, delete or convert cohorts into "manual" or "auth_mcae" mode.

Ignore users

List of users to ignore. Comma separated usernames.

admin,test,manager,teacher1,teacher2

Usage example

You have a custom profile fields "status" (student, teacher or admin) and "course".

You wnat to enrol many users into cohorts like "course - status" than enrol cohorts into courses.

At configuration page set:

Main template to {{ profile_field_course }} - {{ profile_field_status }}

Empty field text to none

Result:

  • When 1st course student logins, he enrol to cohort named "1 - student"
  • When 1st course teacher logins, he enrol to cohort named "1 - teacher"
  • When admin logins, he enrol to cohort named "none - admin" (Course not set, status - admin)

To rename "none - admin" cohort to "Administration" you must set a replacement array field at the configuration page In our case: none - admin|Administrator

Result:

When admin logins, he enrol to cohort named "Administrator"

Version information

Version build number
2015112818
Version release name
2.9.4
Can be updated to
3.0 (2015112819)
Maturity
Stable version
MD5 Sum
a76b063488fb07c19d8d97bb617f6a0d
Supported software
Moodle 2.9
  • Latest release for Moodle 2.9

Version control information

Version control system (VCS)
GIT
VCS repository URL
VCS branch
MOODLE_29_STABLE

Default installation instructions for plugins of the type Authentication

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