diff options
Diffstat (limited to 'modules/drupal.module')
-rw-r--r-- | modules/drupal.module | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/modules/drupal.module b/modules/drupal.module index c945a06ab..01d47a1cc 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"); |