--- webserver_auth.module 2006-03-03 00:08:12.000000000 -0500 +++ webserver_auth.module.new 2006-06-07 16:09:06.000000000 -0400 @@ -20,15 +20,18 @@ } // try to log into Drupal. if unsuccessful, register the user - $user = user_external_load($account->name); - if (!$user->uid) { - if (variable_get("user_register", 1) == 1) { + $webserver_auth_user = user_load(array('name' => $account->name)); + if (!$webserver_auth_user) { + if (variable_get("user_register", 1) == 1 && variable_get("webserver_auth_create_user", 0)) { $user_default = array("name" => $account->name, "pass" => "cyan", "init" => db_escape_string($name), "authname_webserver_auth" => $account->name, "status" => 1, "roles" => array(DRUPAL_AUTHENTICATED_RID)); // TODO - the hook_user('register') will fire but only for loaded modules. cold be a problem for sites using page cache and that hook+operation $user = user_save("", array_merge($user_default, (array)$account)); watchdog("user", "new user: $user->name (webserver_auth)", l(t("edit user"), "admin/user/edit/$user->uid")); } } + else{ + $user = $webserver_auth_user; + } } else { // do nothing. user isn't logged into web server @@ -61,6 +64,15 @@ '#maxlength' => 55, '#description' => t("Append this domain name to each new user in order generate his email address."), ); + + $form["webserver_auth_create_user"] = array( + '#type' => 'checkbox', + '#title' => t("Auto Create Users?"), + '#default_value' => variable_get("webserver_auth_create_user", 0), + '#size' => 30, + '#maxlength' => 55, + '#description' => t("If checked an account will be created only if you have allowed Public registrations."), + ); return $form; }