From 4c49bf4a56fc489cf77ffeda493b4f2d13e25c8e Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Sun, 13 Sep 2009 14:20:00 +0000
Subject: [PATCH] - Patch #319840 by Aron Novak, darren.ferguson: added hook to
 the OpenID module for returning data when a user has logged in.

---
 modules/openid/openid.api.php | 15 +++++++++++++++
 modules/openid/openid.module  |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/modules/openid/openid.api.php b/modules/openid/openid.api.php
index 41f099148a0e..2144945ee350 100644
--- a/modules/openid/openid.api.php
+++ b/modules/openid/openid.api.php
@@ -31,6 +31,21 @@ function hook_openid($op, $request) {
   return $request;
 }
 
+/**
+ * Allow modules to act upon a successful OpenID login.
+ *
+ * @param $response
+ *   Response values from the OpenID Provider.
+ * @param $account
+ *   The Drupal user account that logged in
+ *
+ */
+function hook_openid_response($response, $account) {
+  if (isset($response['openid.ns.ax'])) {
+    _mymodule_store_ax_fields($response, $account);
+  }
+}
+
 /**
  * @} End of "addtogroup hooks".
  */
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index c1a02667265a..df83954973ab 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -418,6 +418,8 @@ function openid_authentication($response) {
         // Load global $user and perform final login tasks.
         $form_state['uid'] = $account->uid;
         user_login_submit(array(), $form_state);
+        // Let other modules act on OpenID login
+        module_invoke_all('openid_response', $response, $account);
       }
     }
     else {
@@ -458,6 +460,8 @@ function openid_authentication($response) {
       // Load global $user and perform final login tasks.
       $form_state['uid'] = $account->uid;
       user_login_submit(array(), $form_state);
+      // Let other modules act on OpenID login
+      module_invoke_all('openid_response', $response, $account);
     }
     drupal_redirect_form($form, $form_state['redirect']);
   }
-- 
GitLab