From 8aa052dc664909f55c4f6e0c18042a9cae0d3544 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Thu, 15 Jul 2004 17:20:15 +0000
Subject: [PATCH] - Patch #9177 by James: fixed distributed authentication.

---
 modules/user.module      | 11 +++++++----
 modules/user/user.module | 11 +++++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/modules/user.module b/modules/user.module
index 539fab30afab..59f1a1d3d9ad 100644
--- a/modules/user.module
+++ b/modules/user.module
@@ -779,10 +779,13 @@ function user_login($edit = array(), $msg = '') {
       foreach (module_list() as $module) {
         if (module_hook($module, 'auth')) {
           if (module_invoke($module, 'auth', $name, $pass, $server)) {
-            if (variable_get('user_register', 1) == 1 && !user_load(array('name' => "$name@$server"))) { // Register this new user.
-              $user = user_save('', array('name' => "$name@$server", 'pass' => user_password(), 'init' => "$name@$server", 'status' => 1, "authname_$module" => "$name@$server", 'roles' => array(_user_authenticated_id())));
-              watchdog('user', "new user: $name@$server ($module ID)", l(t('edit user'), "user/$user->uid/edit"));
-              break;
+            if (variable_get('user_register', 1) == 1) {
+              $account = user_load(array('name' => "$name@$server"));
+              if (!$account->uid) { // Register this new user.
+                $user = user_save('', array('name' => "$name@$server", 'pass' => user_password(), 'init' => "$name@$server", 'status' => 1, "authname_$module" => "$name@$server", 'roles' => array(_user_authenticated_id())));
+                watchdog('user', "new user: $name@$server ($module ID)", l(t('edit user'), "user/$user->uid/edit"));
+                break;
+              }
             }
           }
         }
diff --git a/modules/user/user.module b/modules/user/user.module
index 539fab30afab..59f1a1d3d9ad 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -779,10 +779,13 @@ function user_login($edit = array(), $msg = '') {
       foreach (module_list() as $module) {
         if (module_hook($module, 'auth')) {
           if (module_invoke($module, 'auth', $name, $pass, $server)) {
-            if (variable_get('user_register', 1) == 1 && !user_load(array('name' => "$name@$server"))) { // Register this new user.
-              $user = user_save('', array('name' => "$name@$server", 'pass' => user_password(), 'init' => "$name@$server", 'status' => 1, "authname_$module" => "$name@$server", 'roles' => array(_user_authenticated_id())));
-              watchdog('user', "new user: $name@$server ($module ID)", l(t('edit user'), "user/$user->uid/edit"));
-              break;
+            if (variable_get('user_register', 1) == 1) {
+              $account = user_load(array('name' => "$name@$server"));
+              if (!$account->uid) { // Register this new user.
+                $user = user_save('', array('name' => "$name@$server", 'pass' => user_password(), 'init' => "$name@$server", 'status' => 1, "authname_$module" => "$name@$server", 'roles' => array(_user_authenticated_id())));
+                watchdog('user', "new user: $name@$server ($module ID)", l(t('edit user'), "user/$user->uid/edit"));
+                break;
+              }
             }
           }
         }
-- 
GitLab