diff --git a/enrol/database/lib.php b/enrol/database/lib.php index d877c30a715..a40c80797fe 100644 --- a/enrol/database/lib.php +++ b/enrol/database/lib.php @@ -81,6 +81,15 @@ class enrol_database_plugin extends enrol_plugin { $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 $allroles = get_all_roles(); if (!isset($allroles[$defaultrole])) { diff --git a/enrol/ldap/lib.php b/enrol/ldap/lib.php index 04472b086b8..d16ab6c51cb 100644 --- a/enrol/ldap/lib.php +++ b/enrol/ldap/lib.php @@ -136,6 +136,15 @@ class enrol_ldap_plugin extends enrol_plugin { 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 @set_time_limit(0); raise_memory_limit(MEMORY_HUGE);