summaryrefslogtreecommitdiff
path: root/modules/drupal.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/drupal.module')
-rw-r--r--modules/drupal.module17
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");