Moodle Plugins directory: Auto assign cohort (deprecated for local_cohortauto) | Moodle.org
Auto assign cohort (deprecated for local_cohortauto)
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 Checkboxdatetimetest
- type Date/Timedroptest
- type Dropdown menutextinputtext
- 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"
Is it compatible with Moodle 3.4?
Ricardo
Is this plug incompatible with 3.5.x, or am I missing something, I see nowhere to "enable".
BTW, relatively new to Moodle, but not CMS or PHP Development, so any guidance would be helpful.
I inherited this plugin from someone else that originally wrote it and would like to eventually change it to being an admin tool plugin as it now uses events and doesn't need to hook into the authentication code. thanks.
I have three cohorts, Coach, Athlete and RSO.
I have three checkboxes as custom profile fields labels Coach, Athlete and RSO, Moodle checkboxes are 0 or 1 it appears.
My templates are:
Coach-{{ profile_field_Coach }}
Athlete-{{ profile_field_Athlete }}
RSO-{{ profile_field_RSO }}
My Replace Array is:
Coach-1|Coach
Athlete-1|Athlete
RSO-1|RSO
I have a 0 (zero) in as empty field replacement.
I have tried all three delimiters, though I develop on Mac, it should be just LF I believe.
Any tips on this?
I'm looking for a plugin like that but I'm using Moodle 3.5.3... any ideas?
https://github.com/catalyst/moodle-local_cohortauto
we have refactored it into a local plugin so it is more efficient -
If you have a small number of known cohorts, you might find this plugin useful too:
https://moodle.org/plugins/local_profilecohort
I have this plugin up and running and I am placing users into cohorts by domain. Now, I want to sync cohorts to a course so that when a new account is created and moved to a cohort, they are given access to the course.
For example, if I enrol the example.com cohort in my course, any users that use that domain for their email would be automatically enrolled. Am I able to do that with this plugin?
Cheers,
Nic