From 51f4b91e5123e3e50e139821a0ce1e0f0ea5b31d Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sat, 9 Nov 2002 21:46:54 +0000 Subject: [PATCH] * User patch by Natrak: - Moved the Drupal login XML-RPC API to drupal.module. - DA logins are now assigned the proper role. --- modules/drupal.module | 17 ++++++++++++++++- modules/drupal/drupal.module | 17 ++++++++++++++++- modules/user.module | 22 +--------------------- modules/user/user.module | 22 +--------------------- 4 files changed, 34 insertions(+), 44 deletions(-) diff --git a/modules/drupal.module b/modules/drupal.module index c945a06abdb..01d47a1ccad 100644 --- a/modules/drupal.module +++ b/modules/drupal.module @@ -95,7 +95,7 @@ function drupal_directory_page() { } function drupal_xmlrpc() { - return array("drupal.site.ping" => array("function" => "drupal_directory_ping")); + return array("drupal.site.ping" => array("function" => "drupal_directory_ping"), "drupal.login" => array("function" => "drupal_login")); } function drupal_notify($server) { @@ -149,6 +149,21 @@ function drupal_page() { $theme->footer(); } +function drupal_login($arguments) { + // an XML-RPC method called by external clients (usually other Drupal instances) + $argument = $arguments->getparam(0); + $username = $argument->scalarval(); + $argument = $arguments->getparam(1); + $password = $argument->scalarval(); + + if ($user = user_load(array(name => "$username", "pass" => $password, "status" => 1))) { + return new xmlrpcresp(new xmlrpcval($user->uid, "int")); + } + else { + return new xmlrpcresp(new xmlrpcval(0, "int")); + } +} + function drupal_auth_help() { $site = variable_get("site_name", "this web site"); diff --git a/modules/drupal/drupal.module b/modules/drupal/drupal.module index c945a06abdb..01d47a1ccad 100644 --- a/modules/drupal/drupal.module +++ b/modules/drupal/drupal.module @@ -95,7 +95,7 @@ function drupal_directory_page() { } function drupal_xmlrpc() { - return array("drupal.site.ping" => array("function" => "drupal_directory_ping")); + return array("drupal.site.ping" => array("function" => "drupal_directory_ping"), "drupal.login" => array("function" => "drupal_login")); } function drupal_notify($server) { @@ -149,6 +149,21 @@ function drupal_page() { $theme->footer(); } +function drupal_login($arguments) { + // an XML-RPC method called by external clients (usually other Drupal instances) + $argument = $arguments->getparam(0); + $username = $argument->scalarval(); + $argument = $arguments->getparam(1); + $password = $argument->scalarval(); + + if ($user = user_load(array(name => "$username", "pass" => $password, "status" => 1))) { + return new xmlrpcresp(new xmlrpcval($user->uid, "int")); + } + else { + return new xmlrpcresp(new xmlrpcval(0, "int")); + } +} + function drupal_auth_help() { $site = variable_get("site_name", "this web site"); diff --git a/modules/user.module b/modules/user.module index d51974d34be..a3df52c55e5 100644 --- a/modules/user.module +++ b/modules/user.module @@ -399,26 +399,6 @@ function user_link($type) { return $links ? $links : array(); } -function drupal_login($arguments) { - // an XML-RPC method called by external clients (usually other Drupal instances) - $argument = $arguments->getparam(0); - $username = $argument->scalarval(); - $argument = $arguments->getparam(1); - $password = $argument->scalarval(); - - if ($user = user_load(array(name => "$username", "pass" => $password, "status" => 1))) { - return new xmlrpcresp(new xmlrpcval($user->uid, "int")); - } - else { - return new xmlrpcresp(new xmlrpcval(0, "int")); - } -} - - -function user_xmlrpc() { - return array("drupal.login" => array("function" => "drupal_login")); -} - /*** Authentication methods ************************************************/ function user_get_authname($account, $module) { @@ -542,7 +522,7 @@ function user_login($edit = array(), $msg = "") { 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 watchdog("user", "new user: $name@$server ($module ID)"); - $user = user_save("", array("name" => "$name@$server", "pass" => user_password(), "init" => "$name@$server", "status" => 1, "authname_$module" => "$name@$server")); + $user = user_save("", array("name" => "$name@$server", "pass" => user_password(), "init" => "$name@$server", "status" => 1, "authname_$module" => "$name@$server", "rid" => _user_authenticated_id())); break; } } diff --git a/modules/user/user.module b/modules/user/user.module index d51974d34be..a3df52c55e5 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -399,26 +399,6 @@ function user_link($type) { return $links ? $links : array(); } -function drupal_login($arguments) { - // an XML-RPC method called by external clients (usually other Drupal instances) - $argument = $arguments->getparam(0); - $username = $argument->scalarval(); - $argument = $arguments->getparam(1); - $password = $argument->scalarval(); - - if ($user = user_load(array(name => "$username", "pass" => $password, "status" => 1))) { - return new xmlrpcresp(new xmlrpcval($user->uid, "int")); - } - else { - return new xmlrpcresp(new xmlrpcval(0, "int")); - } -} - - -function user_xmlrpc() { - return array("drupal.login" => array("function" => "drupal_login")); -} - /*** Authentication methods ************************************************/ function user_get_authname($account, $module) { @@ -542,7 +522,7 @@ function user_login($edit = array(), $msg = "") { 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 watchdog("user", "new user: $name@$server ($module ID)"); - $user = user_save("", array("name" => "$name@$server", "pass" => user_password(), "init" => "$name@$server", "status" => 1, "authname_$module" => "$name@$server")); + $user = user_save("", array("name" => "$name@$server", "pass" => user_password(), "init" => "$name@$server", "status" => 1, "authname_$module" => "$name@$server", "rid" => _user_authenticated_id())); break; } }