From 085bf0c9fbb36d046a128775a1e61773d410e5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Sat, 15 Sep 2012 13:52:15 +0200 Subject: [PATCH] MDL-35331 add description of invalid enrolment records in enrol_database sync --- enrol/database/lib.php | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/enrol/database/lib.php b/enrol/database/lib.php index e53600b15fb..79de6be585d 100644 --- a/enrol/database/lib.php +++ b/enrol/database/lib.php @@ -368,6 +368,7 @@ class enrol_database_plugin extends enrol_plugin { continue; } $existing[$course->mapping] = $course; + unset($externalcourses[$course->mapping]); } $rs->close(); @@ -388,18 +389,22 @@ class enrol_database_plugin extends enrol_plugin { continue; } if (!isset($externalcourses[$course->mapping])) { - // course not synced - continue; - } - if (isset($existing[$course->mapping])) { - // some duplicate, sorry + // Course not synced or duplicate. continue; } $course->enrolid = $this->add_instance($course); $existing[$course->mapping] = $course; + unset($externalcourses[$course->mapping]); } $rs->close(); + // Print list of missing courses. + if ($verbose and $externalcourses) { + $list = implode(', ', array_keys($externalcourses)); + mtrace(" error: following courses do not exist - $list"); + unset($list); + } + // free memory unset($externalcourses); @@ -452,13 +457,18 @@ class enrol_database_plugin extends enrol_plugin { while ($fields = $rs->FetchRow()) { $fields = array_change_key_case($fields, CASE_LOWER); if (empty($fields[$userfield])) { - //user identification is mandatory! + if ($verbose) { + mtrace(" error: skipping user without mandatory $localuserfield in course '$course->mapping'"); + } + continue; } $mapping = $fields[$userfield]; if (!isset($user_mapping[$mapping])) { $usersearch[$localuserfield] = $mapping; if (!$user = $DB->get_record('user', $usersearch, 'id', IGNORE_MULTIPLE)) { - // user does not exist or was deleted + if ($verbose) { + mtrace(" error: skipping unknown user $localuserfield '$mapping' in course '$course->mapping'"); + } continue; } $user_mapping[$mapping] = $user->id; @@ -468,7 +478,9 @@ class enrol_database_plugin extends enrol_plugin { } if (empty($fields[$rolefield]) or !isset($roles[$fields[$rolefield]])) { if (!$defaultrole) { - // role is mandatory + if ($verbose) { + mtrace(" error: skipping user '$userid' in course '$course->mapping' - missing course and default role"); + } continue; } $roleid = $defaultrole;