Added a checking flag to check_enrolment_plugins() to make sure that it

never repeats more than once in an invocation.  Otherwise it's sometimes
possible for role_assign() during the enrolment process to cause loops.
This commit is contained in:
moodler
2006-09-25 01:34:21 +00:00
parent e920529bf8
commit e4ec4e4149
+10
View File
@@ -742,6 +742,14 @@ function load_user_capability($capability='', $context ='', $userid='') {
function check_enrolment_plugins(&$user) {
global $CFG;
static $inprogress; // To prevent this function being called more than once in an invocation
if (!empty($inprogress)) {
return;
}
$inprogress = true; // Set the flag
require_once($CFG->dirroot .'/enrol/enrol.class.php');
if (!($plugins = explode(',', $CFG->enrol_plugins_enabled))) {
@@ -766,6 +774,8 @@ function check_enrolment_plugins(&$user) {
}
unset($enrol);
}
$inprogress = false; // Unset the flag
}