Permalink
Browse files

MDL-32572 skip problematic users in auth_db sync

  • Loading branch information...
1 parent b8bf751 commit 8f93c4084f711ee7b909bb3fa7829197ae5c65f0 @skodak skodak committed with stronk7 Sep 18, 2012
Showing with 11 additions and 5 deletions.
  1. +11 −5 auth/db/auth.php
View
@@ -346,7 +346,7 @@ function sync_users($do_updates=false, $verbose=false) {
if ($verbose) {
mtrace(get_string('auth_dbuserstoadd','auth_db',count($add_users)));
}
- $transaction = $DB->start_delegated_transaction();
+ // Do not use transactions around this foreach, we want to skip problematic users, not revert everything.
foreach($add_users as $user) {
$username = $user;
$user = $this->get_userinfo_asobj($user);
@@ -372,9 +372,16 @@ function sync_users($do_updates=false, $verbose=false) {
} else {
$user->timecreated = time();
$user->timemodified = $user->timecreated;
- $id = $DB->insert_record ('user', $user); // it is truly a new user
- if ($verbose) {
- mtrace("\t".get_string('auth_dbinsertuser', 'auth_db', array('name'=>$user->username, 'id'=>$id)));
+ try {
+ $id = $DB->insert_record('user', $user); // it is truly a new user
+ if ($verbose) {
+ mtrace("\t".get_string('auth_dbinsertuser', 'auth_db', array('name'=>$user->username, 'id'=>$id)));
+ }
+ } catch (moodle_exception $e) {
+ if ($verbose) {
+ mtrace("\t".get_string('auth_dbinsertusererror', 'auth_db', $user->username));
+ }
+ continue;
}
// if relevant, tag for password generation
if ($this->is_internal()) {
@@ -383,7 +390,6 @@ function sync_users($do_updates=false, $verbose=false) {
}
}
}
- $transaction->allow_commit();
unset($add_users); // free mem
}
return 0;

0 comments on commit 8f93c40

Please sign in to comment.