If the openid module is enabled openid login doesn't work. Instead of processing the openid the user is just returned to the login page with no message.

The culprit seems to be the code in hook_form_alter that reads:

if (variable_get('logintoboggan_login_with_email', 0)) {
        // LT's validation function must run first.
        $form['#validate'] = array('logintoboggan_user_login_validate') + $form['#validate'];
        // Use theme functions to print the username field's textual labels.
        $form['name']['#title']       = theme('lt_username_title', $form_id);
        $form['name']['#description'] = theme('lt_username_description', $form_id);
        // Use theme functions to print the password field's textual labels.
        $form['pass']['#title']       = theme('lt_password_title', $form_id);
        $form['pass']['#description'] = theme('lt_password_description', $form_id);
}

The $form['#validate'] is interfering with openid. Something like this would fix it.

if (!module_exists('openid') || (module_exists('openid') && empty($form_state['post']['openid_identifier']))) {
  $form['#validate'] = array('logintoboggan_user_login_validate') + $form['#validate'];
}

If the openid module is enabled it will make sure an openid identifier isn't passed in before messing with the validation callback.

Comments

hunmonk’s picture

Status: Active » Closed (duplicate)