summaryrefslogtreecommitdiff
path: root/modules/openid
diff options
context:
space:
mode:
Diffstat (limited to 'modules/openid')
-rw-r--r--modules/openid/openid.module12
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index 48bf7e33c..cac813442 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -409,7 +409,13 @@ function openid_authentication($response) {
$account = user_external_load($identity);
if (isset($account->uid)) {
if (!variable_get('user_email_verification', TRUE) || $account->login) {
- user_external_login($account, $_SESSION['openid']['user_login_values']);
+ // Check if user is blocked.
+ user_login_name_validate(array(), $state, (array)$account);
+ if (!form_get_errors()) {
+ // Load global $user and perform final login tasks.
+ $form_state['uid'] = $account->uid;
+ user_login_submit(array(), $form_state);
+ }
}
else {
drupal_set_message(t('You must validate your email address for this account before logging in via OpenID'));
@@ -446,7 +452,9 @@ function openid_authentication($response) {
drupal_goto();
}
user_set_authmaps($account, array("authname_openid" => $identity));
- user_external_login($account);
+ // Load global $user and perform final login tasks.
+ $form_state['uid'] = $account->uid;
+ user_login_submit(array(), $form_state);
}
drupal_redirect_form($form, $form_state['redirect']);
}