diff --git a/modules/openid/openid.api.php b/modules/openid/openid.api.php index 41f099148a0e86094a7286a156378cc2a274e487..2144945ee350b3f595a323e4a0486f53d14b1e9b 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 c1a02667265afdb23af14c9da421ea0ca96d575b..df83954973abae68b13e5c0a2a633f2bf6e34e24 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']); }