diff --git a/app/assets/javascripts/login.js b/app/assets/javascripts/login.js index b7a540f6e..3496587b4 100644 --- a/app/assets/javascripts/login.js +++ b/app/assets/javascripts/login.js @@ -22,4 +22,18 @@ $(document).ready(function() { // Hide OpenID field for now $("#login_openid_url").hide(); $("#login_openid_submit").hide(); + + // Handle OpenID submission by redirecting to omniauth + $("#openid_login_form").submit(function() { + var action = $(this).prop("action"), + openid_url = $(this).find("#openid_url").val(), + referer = $(this).find("#openid_referer").val(), + args = {}; + args.openid_url = openid_url; + if (referer) { + args.referer = referer; + } + window.location = action + "?" + querystring.stringify(args); + return false; + }); }); diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d1a94b9f6..e872712c1 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -264,9 +264,6 @@ class UsersController < ApplicationController if params[:username].present? && params[:password].present? session[:remember_me] ||= params[:remember_me] password_authentication(params[:username], params[:password]) - elsif params[:openid_url].present? - session[:remember_me] ||= params[:remember_me_openid] - redirect_to auth_url("openid", params[:openid_url], params[:referer]) end end diff --git a/app/views/users/login.html.erb b/app/views/users/login.html.erb index 0944d7809..04a04158c 100644 --- a/app/views/users/login.html.erb +++ b/app/views/users/login.html.erb @@ -40,6 +40,13 @@ <%= submit_tag t('.login_button'), :tabindex => 4 %> + + + <% end %> + + <%= form_tag(auth_path(:provider => "openid"), { :id => "openid_login_form" }) do %> +