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.
Latest release:
272 sites
8 downloads
51 fans
Current versions available: 6

PLEASE NOTE - this plugin has been deprecated and replaced by:
https://github.com/catalyst/moodle-local_cohortauto




---------------------------

Auto cohort authentication plugin

This authentication plugin automatically assigns 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

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

Unassign

Unassign users from cohorts after profile change.

To use an unassign 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"

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2

Contributors

Dan Marsden (Lead maintainer)
Andrew Kama: Previous maintainer
Please login to view contributors details and/or to contact them

Comments RSS

Comments

  • it.webdevsupport Master
    Tue, 13 Sept 2016, 6:33 PM
    Hello!! I am using plugin saml2 to authenticate in my web app. Actually, my app doesn't create automatic cohorts with this plugin. So I would like to know if it is possible and what I should do. Thanks.
  • Derek Lawrie
    Thu, 2 Feb 2017, 5:55 PM
    Is anyone still using this on any version 2 install?
    I use it quite happily, but was wondering if there is a way to remove suspended user accounts from the cohorts?
    As it's suspended the user will never login again so they won't be removed.
    If there is a way to "force" run the plugin via cli that would do the trick.
  • Tim Tarbotton
    Sun, 30 Apr 2017, 8:03 AM
    Hello, I am looking for a plugin that will automatically add a Email-based self-registration to a specific 'cohort' based on the users 'local club' field. I want to add the 'local club' as a mandatory field during self-registration.

    Is this something this plugin can do? I am not a developer but I would like some clarification to make sure this is what this plugin will achieve. I am using Moodle 3.3.

    Appreciate the help!
  • Dan Marsden
    Mon, 1 May 2017, 5:43 AM
    this plugin creates cohorts based on user profile information - for example if you have a local club field in the user profile it will create a site-wide cohort with the club name and assign everyone with the same club name into a site-wide cohort. You can then use other plugins/mangement to assign those cohorts to courses etc.
  • Tristan daCosta
    Thu, 11 May 2017, 5:01 PM
    Hi Dan. I wonder how big a task it would be to add the ability to create cohorts from user Badges? ie. {{badge_badgename}} into cohort "badgename".

    This could then allow site role assignment / other functionality to users based on badges earned (sometimes through the use of other plugins ie. Cohort Role Syncronization).

    For myself, the end goal would be for users to gain additional permissions once they have completed online training.
    Complete training -> Earn Badge -> Enrolled in Cohort -> Cohort assigned custom role (Cohort Role Syncronization) -> Additional permissions with custom role

    Anyone have any thoughts on this?

    Thanks
  • A Guy
    Fri, 12 May 2017, 4:47 AM
    I am using this plugin and it works great with the exception of one process. The user has to log in and then log out. Then log back in in order for the user to be enrolled in the cohort/course. How can I get this to allow the user to be enrolled in the course via the cohort upon first logging in? Thanks
  • Dan Marsden
    Fri, 12 May 2017, 7:15 AM
    @A Guy - try using the version in github to see if that is better - there are a few changes there that improve the process a bit.
    @Tristan - it's not something I'm planning to work on at the moment, but feel free to submit a pull request if you work it out - or if you're willing to fund the time for someone to look at this drop me a private message and I can provide information on our rates (I work for the Moodle Partner Catalyst IT)
  • srikanthi akula
    Wed, 5 July 2017, 5:08 PM
    Hi Dan... I would like to use this plugin.. But my requirement is, is it possible to enroll to cohort as soon as the user is created. And not after user has logged in.. Thank you
  • Dan Marsden
    Thu, 6 July 2017, 6:56 AM
    @srikanthi - I added a patch to the version in github that does that but didn't release it here - feel free to give it a go.
  • srikanthi akula
    Fri, 7 July 2017, 7:12 PM
    Thanks a lot Dan... I had installed Github version, it's working smile
    But what if the user profile was edited and user fields were updated!!
    Will the user Shift to other cohort..

    As of now what I observed is, user been added to the updated cohort group, but was not removed in the old cohort..
    is there any way to do that..(to remove from the old cohort when the user profiles fields are updated)

    Thank you
  • Dan Marsden
    Mon, 10 July 2017, 6:16 AM
    I thought it was removing the old cohort enrolment - if not, there might be a bug, feel free to contact me privately if you are willing to pay for my time to investigate. (I work for the Moodle Partner Catalyst IT)
  • Francis Vendrell
    Tue, 8 Aug 2017, 6:57 PM
    Version mcae 3.1 (2016022900) doesn't seem to work with Moodle 3.3.1.
    Is the Github version compatible with Moodle 3.3.1?
  • Bas Harkink
    Tue, 15 Aug 2017, 11:46 PM
    We are setting up a Moodle site where a user makes their own account through a version of the email self registration. In this form the user choses a cohort that we have setup beforehand. (create cohort, than convert to mcae cohort using /mcae/convert.php).

    At first that process seemed to work perfectly. Now we are noticing that mcae is creating new cohorts with the same name and assigning users in that cohort instead of the cohort we setup beforehand (and added to courses as a enroll method). Do you have any idea what could be the problem?

    And thank you for taking the time to maintain this plugin, Dan!
    Best, Bas Harkink
  • Gianluca Torbidone
    Sat, 13 Jan 2018, 8:15 AM
    I have github version and Moodle 3.4. All is ok but the cohort's name. Why the cohort's name is wrong? It seem that doesn't recognizes the any field, and it uses the empty field text. Thank you.
  • Dan Marsden
    Mon, 15 Jan 2018, 3:38 AM
    @Luka - it's not clear what your issue is - you could try asking for help in the community forums where you can also include screenshots - alternatively you purchase support from your local Moodle Partner who might also be able to help further.
Please login to post comments