MDL-25674 detection of invalid $user parameter when synchronising user enrolments

This commit is contained in:
Petr Skoda 2010-12-16 09:33:50 +01:00 committed by Eloy Lafuente (stronk7)
parent c35ae13691
commit 07cd46d84d
2 changed files with 18 additions and 0 deletions

View file

@ -81,6 +81,15 @@ class enrol_database_plugin extends enrol_plugin {
$ignorehidden = $this->get_config('ignorehiddencourses'); $ignorehidden = $this->get_config('ignorehiddencourses');
if (!is_object($user) or !property_exists($user, 'id')) {
throw new coding_exception('Invalid $user parameter in sync_user_enrolments()');
}
if (!property_exists($user, $localuserfield)) {
debugging('Invalid $user parameter in sync_user_enrolments(), missing '.$localuserfield);
$user = $DB->get_record('user', array('id'=>$user->id));
}
// create roles mapping // create roles mapping
$allroles = get_all_roles(); $allroles = get_all_roles();
if (!isset($allroles[$defaultrole])) { if (!isset($allroles[$defaultrole])) {

View file

@ -136,6 +136,15 @@ class enrol_ldap_plugin extends enrol_plugin {
return; return;
} }
if (!is_object($user) or !property_exists($user, 'id')) {
throw new coding_exception('Invalid $user parameter in sync_user_enrolments()');
}
if (!property_exists($user, 'idnumbner')) {
debugging('Invalid $user parameter in sync_user_enrolments(), missing idnumber');
$user = $DB->get_record('user', array('id'=>$user->id));
}
// We may need a lot of memory here // We may need a lot of memory here
@set_time_limit(0); @set_time_limit(0);
raise_memory_limit(MEMORY_HUGE); raise_memory_limit(MEMORY_HUGE);