Make enrolling only LDAP users an option

This commit is contained in:
jonasluehrig
2026-02-16 12:59:13 +01:00
parent fda350c65f
commit 4eca71dc7f
4 changed files with 332 additions and 309 deletions

View File

@@ -62,18 +62,20 @@ $string['role_member_attribute_is_dn_key'] = "Rollen Mitgliedsattribut ist DN";
$string['role_member_attribute_is_dn_desc'] = "Gibt an, ob das Rollen Mitgliedsattribut ein DN Wert ist"; $string['role_member_attribute_is_dn_desc'] = "Gibt an, ob das Rollen Mitgliedsattribut ein DN Wert ist";
// Course Mapping // Course Mapping
$string['coursemapping'] = "Kurszuweisung"; $string['coursemapping'] = "Kurszuweisung";
$string['coursemapping_desc'] = "Einstellungen zur Zuweisung von IServ Gruppen zu Moodle Kursen"; $string['coursemapping_desc'] = "Einstellungen zur Zuweisung von IServ Gruppen zu Moodle Kursen";
$string['coursemapping_attribute_key'] = "Kurs Attribut"; $string['coursemapping_attribute_key'] = "Kurs Attribut";
$string['coursemapping_attribute_desc'] = "LDAP Attribut, wessen Wert eine Gruppe als Kurs markiert"; $string['coursemapping_attribute_desc'] = "LDAP Attribut, wessen Wert eine Gruppe als Kurs markiert";
$string['coursemapping_attribute_value_key'] = "Kurs Attributwert"; $string['coursemapping_attribute_value_key'] = "Kurs Attributwert";
$string['coursemapping_attribute_value_desc'] = "Wert des obrigen Kurs Attributes"; $string['coursemapping_attribute_value_desc'] = "Wert des obrigen Kurs Attributes";
$string['coursemapping_use_attribute_key'] = "Kurs Attribut benutzen"; $string['coursemapping_use_attribute_key'] = "Kurs Attribut benutzen";
$string['coursemapping_use_attribute_desc'] = "Gibt an, ob das Kurs Attribut verwendet werden soll, um Gruppen Kursen zuzuweisen"; $string['coursemapping_use_attribute_desc'] = "Gibt an, ob das Kurs Attribut verwendet werden soll, um Gruppen Kursen zuzuweisen";
$string['coursemapping_prefixes_key'] = "Kurs CN Präfix"; $string['coursemapping_prefixes_key'] = "Kurs CN Präfix";
$string['coursemapping_prefixes_desc'] = "Ein Präfix im CN Gruppen Attribut, welches eine Gruppe als Moodle Kurs markiert. Ein * wird als Platzhalter für den restlichen CN Wert eingesetzt"; $string['coursemapping_prefixes_desc'] = "Ein Präfix im CN Gruppen Attribut, welches eine Gruppe als Moodle Kurs markiert. Ein * wird als Platzhalter für den restlichen CN Wert eingesetzt";
$string['coursemapping_use_prefixes_key'] = "Kurs CN Präfix verwenden"; $string['coursemapping_use_prefixes_key'] = "Kurs CN Präfix verwenden";
$string['coursemapping_use_prefixes_desc'] = "Gibt an, ob das Kurs CN Präfix verwendet werden soll, um Gruppen Kursen zuzuweisen. Hinweis: Das Kurs Attribut hat Vorrang, wenn beide aktiv sind!"; $string['coursemapping_use_prefixes_desc'] = "Gibt an, ob das Kurs CN Präfix verwendet werden soll, um Gruppen Kursen zuzuweisen. Hinweis: Das Kurs Attribut hat Vorrang, wenn beide aktiv sind!";
$string['coursemapping_map_only_ldap_users_key'] = "Kurse nur LDAP Nutzer/innen zuweisen";
$string['coursemapping_map_only_ldap_users_desc'] = "Gibt an, ob Kurse nur Nutzer/innen zugweisen werden sollen, dessen Account via LDAP erstellt wurde";
// Course Settings // Course Settings
$string['courses'] = "Kurseinstellungen"; $string['courses'] = "Kurseinstellungen";

View File

@@ -61,18 +61,20 @@ $string['role_member_attribute_is_dn_key'] = "Role membership attribute is DN";
$string['role_member_attribute_is_dn_desc'] = "Specifies if the role membership attribute is a DN value"; $string['role_member_attribute_is_dn_desc'] = "Specifies if the role membership attribute is a DN value";
// Course Mapping // Course Mapping
$string['coursemapping'] = "Course Mapping"; $string['coursemapping'] = "Course Mapping";
$string['coursemapping_desc'] = "Settings specifying how IServ groups are mapped to Moodle courses"; $string['coursemapping_desc'] = "Settings specifying how IServ groups are mapped to Moodle courses";
$string['coursemapping_attribute_key'] = "Course Attribute"; $string['coursemapping_attribute_key'] = "Course Attribute";
$string['coursemapping_attribute_desc'] = "LDAP attribute whose value marks IServ groups as Moodle courses"; $string['coursemapping_attribute_desc'] = "LDAP attribute whose value marks IServ groups as Moodle courses";
$string['coursemapping_attribute_value_key'] = "Course Attribute Value"; $string['coursemapping_attribute_value_key'] = "Course Attribute Value";
$string['coursemapping_attribute_value_desc'] = "Value of the course attribute above"; $string['coursemapping_attribute_value_desc'] = "Value of the course attribute above";
$string['coursemapping_use_attribute_key'] = "Use Course Attribute"; $string['coursemapping_use_attribute_key'] = "Use Course Attribute";
$string['coursemapping_use_attribute_desc'] = "Specifies if the course attribute is used for mapping"; $string['coursemapping_use_attribute_desc'] = "Specifies if the course attribute is used for mapping";
$string['coursemapping_prefixes_key'] = "Course CN Prefix"; $string['coursemapping_prefixes_key'] = "Course CN Prefix";
$string['coursemapping_prefixes_desc'] = "A prefix in the group CN attribute which marks IServ groups as Moodle courses. An asterisk (*) is used as placeholder for remaining text in the CN attribute"; $string['coursemapping_prefixes_desc'] = "A prefix in the group CN attribute which marks IServ groups as Moodle courses. An asterisk (*) is used as placeholder for remaining text in the CN attribute";
$string['coursemapping_use_prefixes_key'] = "Use course CN prefix"; $string['coursemapping_use_prefixes_key'] = "Use course CN prefix";
$string['coursemapping_use_prefixes_desc'] = "Specifies if the course CN prefix is used for mapping. Notice: The course attribute takes precedence when both are active!"; $string['coursemapping_use_prefixes_desc'] = "Specifies if the course CN prefix is used for mapping. Notice: The course attribute takes precedence when both are active!";
$string['coursemapping_map_only_ldap_users_key'] = "Enrol only LDAP users";
$string['coursemapping_map_only_ldap_users_desc'] = "Specifies if only those users shall be enrolled into courses, whose accounts have been created through the LDAP plugin";
// Course Settings // Course Settings
$string['courses'] = "Course Settings"; $string['courses'] = "Course Settings";

26
lib.php
View File

@@ -1329,13 +1329,18 @@ class enrol_iserv_plugin extends enrol_plugin
if (!is_array($users)) if (!is_array($users))
$users = array($users); $users = array($users);
$user_record_filter = [];
if ($this->config->coursemapping_map_only_ldap_users) {
$user_record_filter['auth'] = 'ldap';
}
foreach ($users as $username) { foreach ($users as $username) {
$user = $DB->get_record( $user = $DB->get_record(
'user', 'user',
array( [
'username' => $username, ...$user_record_filter,
'auth' => 'ldap' 'username' => $username
) ]
); );
if (!$user) { if (!$user) {
@@ -1368,13 +1373,18 @@ class enrol_iserv_plugin extends enrol_plugin
if (!is_array($users)) if (!is_array($users))
$users = array($users); $users = array($users);
$user_record_filter = [];
if ($this->config->coursemapping_map_only_ldap_users) {
$user_record_filter['auth'] = 'ldap';
}
foreach ($users as $username) { foreach ($users as $username) {
$user = $DB->get_record( $user = $DB->get_record(
'user', 'user',
array( [
'username' => $username, ...$user_record_filter,
'auth' => 'ldap' 'username' => $username
) ]
); );
if (!$user) { if (!$user) {

View File

@@ -31,312 +31,321 @@
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
if ($ADMIN -> fulltree) { if ($ADMIN->fulltree) {
global $DB; global $DB;
// Initializing // Initializing
require_once ("{$CFG -> dirroot}/enrol/ldap/settingslib.php"); require_once("{$CFG->dirroot}/enrol/ldap/settingslib.php");
require_once ("{$CFG -> dirroot}/enrol/oss/settings_callbacks.php"); require_once("{$CFG->dirroot}/enrol/oss/settings_callbacks.php");
$yesno = array(get_string('no'), get_string('yes')); $yesno = array(get_string('no'), get_string('yes'));
// Heading // Heading
$settings -> add( $settings->add(
new admin_setting_heading( new admin_setting_heading(
'enrol_iserv_settings', 'enrol_iserv_settings',
get_string('pluginname','enrol_iserv'), get_string('pluginname', 'enrol_iserv'),
get_string('plugin_description', 'enrol_iserv') get_string('plugin_description', 'enrol_iserv')
) )
); );
// --- GROUP Settings --- // // --- GROUP Settings --- //
$settings->add( $settings->add(
new admin_setting_heading( new admin_setting_heading(
'enrol_iserv_group_settings', 'enrol_iserv_group_settings',
get_string('group_settings', 'enrol_iserv'), get_string('group_settings', 'enrol_iserv'),
get_string('group_settings_desc', 'enrol_iserv') get_string('group_settings_desc', 'enrol_iserv')
) )
); );
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configtext_trim_lower(
'enrol_iserv/group_contexts', 'enrol_iserv/group_contexts',
get_string('group_contexts_key', 'enrol_iserv'), get_string('group_contexts_key', 'enrol_iserv'),
get_string('group_contexts_desc', 'enrol_iserv'), get_string('group_contexts_desc', 'enrol_iserv'),
'ou=groups,dc=mein-iserv,dc=de' 'ou=groups,dc=mein-iserv,dc=de'
) )
); );
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configtext_trim_lower(
'enrol_iserv/group_object_class', 'enrol_iserv/group_object_class',
get_string('group_object_class_key', 'enrol_iserv'), get_string('group_object_class_key', 'enrol_iserv'),
get_string('group_object_class_desc', 'enrol_iserv'), get_string('group_object_class_desc', 'enrol_iserv'),
'uuidObject' 'uuidObject'
) )
); );
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configtext_trim_lower(
'enrol_iserv/group_attribute', 'enrol_iserv/group_attribute',
get_string('group_attribute_key', 'enrol_iserv'), get_string('group_attribute_key', 'enrol_iserv'),
get_string('group_attribute_desc', 'enrol_iserv'), get_string('group_attribute_desc', 'enrol_iserv'),
'cn' 'cn'
) )
); );
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configtext_trim_lower(
'enrol_iserv/group_fullname_attribute', 'enrol_iserv/group_fullname_attribute',
get_string('group_fullname_attribute_key', 'enrol_iserv'), get_string('group_fullname_attribute_key', 'enrol_iserv'),
get_string('group_fullname_attribute_desc', 'enrol_iserv'), get_string('group_fullname_attribute_desc', 'enrol_iserv'),
'description' 'description'
) )
); );
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/group_member_attribute',
get_string('group_member_attribute_key', 'enrol_iserv'),
get_string('group_member_attribute_desc', 'enrol_iserv'),
"memberUid"
)
);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/group_member_attribute_is_dn',
get_string('group_member_attribute_is_dn_key', 'enrol_iserv'),
get_string('group_member_attribute_is_dn_desc', 'enrol_iserv'),
0,
$yesno
)
);
$settings->add(
new admin_setting_configcheckbox(
'enrol_iserv/group_search_subtree',
get_string('group_search_subtree_key', 'enrol_iserv'),
get_string('group_search_subtree_desc', 'enrol_iserv'),
0
)
);
// --- ROLE Settings --- // $settings->add(
$settings->add( new admin_setting_configtext_trim_lower(
new admin_setting_heading( 'enrol_iserv/group_member_attribute',
'enrol_iserv_role_settings', get_string('group_member_attribute_key', 'enrol_iserv'),
get_string('role_settings', 'enrol_iserv'), get_string('group_member_attribute_desc', 'enrol_iserv'),
get_string('role_settings_desc', 'enrol_iserv') "memberUid"
) )
); );
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configselect(
'enrol_iserv/role_contexts', 'enrol_iserv/group_member_attribute_is_dn',
get_string('role_contexts_key', 'enrol_iserv'), get_string('group_member_attribute_is_dn_key', 'enrol_iserv'),
get_string('role_contexts_desc', 'enrol_iserv'), get_string('group_member_attribute_is_dn_desc', 'enrol_iserv'),
'ou=roles,dc=mein-iserv,dc=de' 0,
) $yesno
); )
);
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configcheckbox(
'enrol_iserv/role_object_class', 'enrol_iserv/group_search_subtree',
get_string('role_object_class_key', 'enrol_iserv'), get_string('group_search_subtree_key', 'enrol_iserv'),
get_string('role_object_class_desc', 'enrol_iserv'), get_string('group_search_subtree_desc', 'enrol_iserv'),
'organizationalRole' 0
) )
); );
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/teachers_role_name',
get_string('teachers_role_name_key', 'enrol_iserv'),
get_string('teachers_role_name_desc', 'enrol_iserv'),
'ROLE_TEACHER'
)
);
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/students_role_name',
get_string('students_role_name_key', 'enrol_iserv'),
get_string('students_role_name_desc', 'enrol_iserv'),
'ROLE_STUDENT'
)
);
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/role_member_attribute',
get_string('role_member_attribute_key', 'enrol_iserv'),
get_string('role_member_attribute_desc', 'enrol_iserv'),
"roleOccupant"
)
);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/role_member_attribute_is_dn',
get_string('role_member_attribute_is_dn_key', 'enrol_iserv'),
get_string('role_member_attribute_is_dn_desc', 'enrol_iserv'),
1,
$yesno
)
);
// --- GROUP<>COURSE MAPPING Settings --- // // --- ROLE Settings --- //
$settings->add( $settings->add(
new admin_setting_heading( new admin_setting_heading(
'enrol_iserv_coursemapping_settings', 'enrol_iserv_role_settings',
get_string('coursemapping', 'enrol_iserv'), get_string('role_settings', 'enrol_iserv'),
get_string('coursemapping_desc', 'enrol_iserv') get_string('role_settings_desc', 'enrol_iserv')
) )
); );
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/role_contexts',
get_string('role_contexts_key', 'enrol_iserv'),
get_string('role_contexts_desc', 'enrol_iserv'),
'ou=roles,dc=mein-iserv,dc=de'
)
);
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/role_object_class',
get_string('role_object_class_key', 'enrol_iserv'),
get_string('role_object_class_desc', 'enrol_iserv'),
'organizationalRole'
)
);
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/teachers_role_name',
get_string('teachers_role_name_key', 'enrol_iserv'),
get_string('teachers_role_name_desc', 'enrol_iserv'),
'ROLE_TEACHER'
)
);
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/students_role_name',
get_string('students_role_name_key', 'enrol_iserv'),
get_string('students_role_name_desc', 'enrol_iserv'),
'ROLE_STUDENT'
)
);
$settings->add( $settings->add(
new admin_setting_configtext_trim_lower( new admin_setting_configtext_trim_lower(
'enrol_iserv/coursemapping_attribute', 'enrol_iserv/role_member_attribute',
get_string('coursemapping_attribute_key', 'enrol_iserv'), get_string('role_member_attribute_key', 'enrol_iserv'),
get_string('coursemapping_attribute_desc', 'enrol_iserv'), get_string('role_member_attribute_desc', 'enrol_iserv'),
'memberUid' "roleOccupant"
) )
); );
$settings->add(
new admin_setting_configtext_trim_lower(
'enrol_iserv/coursemapping_attribute_value',
get_string('coursemapping_attribute_value_key', 'enrol_iserv'),
get_string('coursemapping_attribute_value_desc', 'enrol_iserv'),
"moodlekurs"
)
);
$settings->add( $settings->add(
new admin_setting_configcheckbox( new admin_setting_configselect(
'enrol_iserv/coursemapping_use_attribute', 'enrol_iserv/role_member_attribute_is_dn',
get_string('coursemapping_use_attribute_key', 'enrol_iserv'), get_string('role_member_attribute_is_dn_key', 'enrol_iserv'),
get_string('coursemapping_use_attribute_desc', 'enrol_iserv'), get_string('role_member_attribute_is_dn_desc', 'enrol_iserv'),
0 1,
) $yesno
); )
);
$settings->add( // --- GROUP<>COURSE MAPPING Settings --- //
new admin_setting_configtext_trim_lower( $settings->add(
'enrol_iserv/coursemapping_prefixes', new admin_setting_heading(
get_string('coursemapping_prefixes_key', 'enrol_iserv'), 'enrol_iserv_coursemapping_settings',
get_string('coursemapping_prefixes_desc', 'enrol_iserv'), get_string('coursemapping', 'enrol_iserv'),
"kurs.*" get_string('coursemapping_desc', 'enrol_iserv')
) )
); );
$settings->add(
new admin_setting_configcheckbox(
'enrol_iserv/coursemapping_use_prefixes',
get_string('coursemapping_use_prefixes_key', 'enrol_iserv'),
get_string('coursemapping_use_prefixes_desc', 'enrol_iserv'),
1
)
);
// --- COURSES Settings --- // $settings->add(
$settings->add( new admin_setting_configtext_trim_lower(
new admin_setting_heading( 'enrol_iserv/coursemapping_attribute',
'enrol_iserv_courses_settings', get_string('coursemapping_attribute_key', 'enrol_iserv'),
get_string('courses', 'enrol_iserv'), get_string('coursemapping_attribute_desc', 'enrol_iserv'),
get_string('courses_desc', 'enrol_iserv') 'memberUid'
) )
); );
$setting = new admin_setting_configtext_trim_lower( $settings->add(
'enrol_iserv/courses_category', new admin_setting_configtext_trim_lower(
get_string('courses_category_key', 'enrol_iserv'), 'enrol_iserv/coursemapping_attribute_value',
get_string('courses_category_desc', 'enrol_iserv'), get_string('coursemapping_attribute_value_key', 'enrol_iserv'),
"Kurse" get_string('coursemapping_attribute_value_desc', 'enrol_iserv'),
); "moodlekurs"
$setting -> set_updatedcallback ('enrol_iserv_settings_courses_category_name_updated'); )
$settings->add($setting); );
$settings->add( $settings->add(
new admin_setting_configselect( new admin_setting_configcheckbox(
'enrol_iserv/courses_autocreate', 'enrol_iserv/coursemapping_use_attribute',
get_string('courses_autocreate_key', 'enrol_iserv'), get_string('coursemapping_use_attribute_key', 'enrol_iserv'),
get_string('courses_autocreate_desc', 'enrol_iserv'), get_string('coursemapping_use_attribute_desc', 'enrol_iserv'),
1, 0
$yesno )
) );
);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_autoremove',
get_string('courses_autoremove_key', 'enrol_iserv'),
get_string('courses_autoremove_desc', 'enrol_iserv'),
1,
$yesno
)
);
$settings->add( $settings->add(
new admin_setting_configselect( new admin_setting_configtext_trim_lower(
'enrol_iserv/courses_category_autocreate', 'enrol_iserv/coursemapping_prefixes',
get_string('courses_category_autocreate_key', 'enrol_iserv'), get_string('coursemapping_prefixes_key', 'enrol_iserv'),
get_string('courses_category_autocreate_desc', 'enrol_iserv'), get_string('coursemapping_prefixes_desc', 'enrol_iserv'),
1, "kurs.*"
$yesno )
) );
);
$enrol_iserv_courses = array(); $settings->add(
$enrol_iserv_coursenames = $DB -> get_records_sql('SELECT * FROM {course} ORDER BY fullname'); new admin_setting_configcheckbox(
foreach ($enrol_iserv_coursenames as $key => $coursename) { 'enrol_iserv/coursemapping_use_prefixes',
$enrol_iserv_courses[$coursename->id] = "{$coursename -> fullname} ({$coursename->id})"; get_string('coursemapping_use_prefixes_key', 'enrol_iserv'),
} get_string('coursemapping_use_prefixes_desc', 'enrol_iserv'),
$enrol_iserv_courses[0] = get_string('course_template_none','enrol_iserv'); 1
)
);
$settings->add( $settings->add(
new admin_setting_configselect( new admin_setting_configcheckbox(
'enrol_iserv/courses_template', 'enrol_iserv/coursemapping_map_only_ldap_users',
get_string('courses_template_key', 'enrol_iserv'), get_string('coursemapping_map_only_ldap_users_key', 'enrol_iserv'),
get_string('courses_template_desc', 'enrol_iserv'), get_string('coursemapping_map_only_ldap_users_desc', 'enrol_iserv'),
0, 1
$enrol_iserv_courses )
) );
);
$options = get_default_enrol_roles (context_system::instance ());
$teacher = get_archetype_roles ('editingteacher');
$teacher = reset ($teacher);
$settings->add( // --- COURSES Settings --- //
new admin_setting_configselect( $settings->add(
'enrol_iserv/courses_teacher_role', new admin_setting_heading(
get_string('courses_teacher_role_key', 'enrol_iserv'), 'enrol_iserv_courses_settings',
get_string('courses_teacher_role_desc', 'enrol_iserv'), get_string('courses', 'enrol_iserv'),
$teacher -> id, get_string('courses_desc', 'enrol_iserv')
$options )
) );
);
$options = get_default_enrol_roles (context_system::instance ()); $setting = new admin_setting_configtext_trim_lower(
$student = get_archetype_roles ('student'); 'enrol_iserv/courses_category',
$student = reset ($student); get_string('courses_category_key', 'enrol_iserv'),
get_string('courses_category_desc', 'enrol_iserv'),
"Kurse"
);
$setting->set_updatedcallback('enrol_iserv_settings_courses_category_name_updated');
$settings->add($setting);
$settings->add( $settings->add(
new admin_setting_configselect( new admin_setting_configselect(
'enrol_iserv/courses_student_role', 'enrol_iserv/courses_autocreate',
get_string('courses_student_role_key', 'enrol_iserv'), get_string('courses_autocreate_key', 'enrol_iserv'),
get_string('courses_student_role_desc', 'enrol_iserv'), get_string('courses_autocreate_desc', 'enrol_iserv'),
$student -> id, 1,
$options $yesno
) )
); );
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_autoremove',
get_string('courses_autoremove_key', 'enrol_iserv'),
get_string('courses_autoremove_desc', 'enrol_iserv'),
1,
$yesno
)
);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_category_autocreate',
get_string('courses_category_autocreate_key', 'enrol_iserv'),
get_string('courses_category_autocreate_desc', 'enrol_iserv'),
1,
$yesno
)
);
$enrol_iserv_courses = array();
$enrol_iserv_coursenames = $DB->get_records_sql('SELECT * FROM {course} ORDER BY fullname');
foreach ($enrol_iserv_coursenames as $key => $coursename) {
$enrol_iserv_courses[$coursename->id] = "{$coursename->fullname} ({$coursename->id})";
}
$enrol_iserv_courses[0] = get_string('course_template_none', 'enrol_iserv');
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_template',
get_string('courses_template_key', 'enrol_iserv'),
get_string('courses_template_desc', 'enrol_iserv'),
0,
$enrol_iserv_courses
)
);
$options = get_default_enrol_roles(context_system::instance());
$teacher = get_archetype_roles('editingteacher');
$teacher = reset($teacher);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_teacher_role',
get_string('courses_teacher_role_key', 'enrol_iserv'),
get_string('courses_teacher_role_desc', 'enrol_iserv'),
$teacher->id,
$options
)
);
$options = get_default_enrol_roles(context_system::instance());
$student = get_archetype_roles('student');
$student = reset($student);
$settings->add(
new admin_setting_configselect(
'enrol_iserv/courses_student_role',
get_string('courses_student_role_key', 'enrol_iserv'),
get_string('courses_student_role_desc', 'enrol_iserv'),
$student->id,
$options
)
);
} }