From 61fbd0fb523fe64e032deea72e584eb5a57656f1 Mon Sep 17 00:00:00 2001 From: thepurpleblob Date: Fri, 20 Jul 2007 13:03:19 +0000 Subject: [PATCH] MDL-10396: Add an option and a check to (optionally) prevent users being enrolled in hidden courses. Merged from STABLE_18 --- enrol/database/config.html | 28 +++++++++++++++++++++++++++- enrol/database/enrol.php | 14 +++++++++++++- lang/en_utf8/enrol_database.php | 1 + 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/enrol/database/config.html b/enrol/database/config.html index 29cc2f603..2704c0ec4 100644 --- a/enrol/database/config.html +++ b/enrol/database/config.html @@ -1,3 +1,7 @@ +get_string('no'), '1'=>get_string('yes')); +?> + @@ -182,6 +186,7 @@ + + + + + + + + + + +
@@ -174,7 +178,7 @@ enrol_db_autocreate: 'no','1'=>'yes'), "enrol_db_autocreate", $frm->enrol_db_autocreate, ""); + choose_from_menu($yesno, "enrol_db_autocreate", $frm->enrol_db_autocreate, ""); if (isset($err["enrol_db_autocreate"])) formerr($err["enrol_db_autocreate"]); ?>
enrol_db_category: @@ -208,4 +213,25 @@
+ +
enrol_db_ignorehiddencourse: + enrol_db_ignorehiddencourse, ""); + if (isset($err['enrol_db_ignorehiddencourse'])) { + formerr($err['enrol_db_ignorehiddencourse']); + } + ?> + + +
diff --git a/enrol/database/enrol.php b/enrol/database/enrol.php index 2b6151e6a..1b3a22af1 100644 --- a/enrol/database/enrol.php +++ b/enrol/database/enrol.php @@ -110,6 +110,12 @@ function setup_enrolments(&$user) { } } + // if the course is hidden and we don't want to enrol in hidden courses + // then just skip it + if (!$course->visible and $CFG->enrol_db_ignorehiddencourse) { + continue; + } + /// If there's no role specified, we get the default course role (usually student) if ($use_default_role) { $role = get_default_course_role($course); @@ -412,7 +418,8 @@ function config_form($frm) { 'enrol_remotecoursefield', 'enrol_remoteuserfield', 'enrol_db_autocreate', 'enrol_db_category', 'enrol_db_template', 'enrol_db_localrolefield', 'enrol_db_remoterolefield', - 'enrol_remotecoursefield', 'enrol_remoteuserfield'); + 'enrol_remotecoursefield', 'enrol_remoteuserfield', + 'enrol_db_ignorehiddencourse'); foreach ($vars as $var) { if (!isset($frm->$var)) { @@ -505,6 +512,11 @@ function process_config($config) { } set_config('enrol_db_remoterolefield', $config->enrol_db_remoterolefield); + if (!isset($config->enrol_db_ignorehiddencourse)) { + $config->enrol_db_ignorehiddencourse = ''; + } + set_config('enrol_db_ignorehiddencourse', $config->enrol_db_ignorehiddencourse ); + return true; } diff --git a/lang/en_utf8/enrol_database.php b/lang/en_utf8/enrol_database.php index f12e986fa..1d6948af5 100644 --- a/lang/en_utf8/enrol_database.php +++ b/lang/en_utf8/enrol_database.php @@ -21,6 +21,7 @@ $string['enrolname'] = 'External Database'; $string['enrol_database_autocreation_settings'] = 'Auto-creation of new courses'; $string['general_options'] = 'General Options'; $string['host'] = 'Database server hostname.'; +$string['ignorehiddencourse'] = 'If set to yes users will not be enroled on courses that are set to be unavailable to students.'; $string['localcoursefield'] = 'The name of the field in the course table that we are using to match entries in the remote database (eg idnumber).'; $string['localrolefield'] = 'The name of the field in the roles table that we are using to match entries in the remote database (eg shortname).'; $string['localuserfield'] = 'The name of the field in the user table that we are using to match entries in the remote database (eg idnumber).'; -- 2.11.4.GIT