]> git.mjollnir.org Git - moodle.git/commitdiff
enrol/db/enrol.php ignore delt'd usrs when enroling
authormartinlanghoff <martinlanghoff>
Thu, 28 Sep 2006 01:20:42 +0000 (01:20 +0000)
committermartinlanghoff <martinlanghoff>
Thu, 28 Sep 2006 01:20:42 +0000 (01:20 +0000)
Previously the import process would throw a non-fatal error when it found a
non-one number of users with the remote key.  This meant that
when there was a deleted user with the same remote key as an existing user, it
would throw an error, and report that there were no users for that remote key.
Fixed it so that it now ignores deleted users, and provides more accurate
and more precise error messages in the event that there are further
problems.

Author: Peter Bulmer

enrol/database/enrol.php

index 052a0783ceb120ae64fb0e7866177de29418e49a..66773f0cab49e782ab4d318dc58c6c256206597a 100644 (file)
@@ -305,14 +305,15 @@ function sync_enrolments($role = null) {
                  LEFT OUTER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
                   AND ra.roleid = {$role->id}
                   AND ra.contextid = {$context->id}
-                 WHERE u.{$CFG->enrol_localuserfield} = ".$db->quote($member);
+                 WHERE u.{$CFG->enrol_localuserfield} = ".$db->quote($member) . 
+                 " AND (u.deleted IS NULL OR u.deleted=0) ";
 
             $ers = $db->Execute($sql);
             if (!$ers) {
                 trigger_error($db->ErrorMsg() .' STATEMENT: '. $sql);
                 return false;
             }
-            if ( $ers->RecordCount() != 1 ) { // if this returns empty, it means we don't have the student record.
+            if ( $ers->RecordCount() == 0 ) { // if this returns empty, it means we don't have the student record.
                                               // should not happen -- but skip it anyway 
                 trigger_error('weird! no user record entry?');
                 continue;