From 7b3a498885b05eec7419e05e3fb81f935bb0f53d Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Sat, 30 May 2015 17:44:47 -0300 Subject: [PATCH] oauth_client: improve login with popup --- plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb | 11 ++++++++--- plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb b/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb index c9a0035..4f2a900 100644 --- a/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb +++ b/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb @@ -19,10 +19,10 @@ class OauthClientPluginPublicController < PublicController end def finish - if logged_in? && session.delete(:oauth_client_popup) + if session.delete(:oauth_client_popup) current_user.private_token_expired? if current_user.present? private_token = current_user.present? ? current_user.private_token : '' - render 'oauth_client_plugin_public/finish', :locals => {:private_token => private_token} + render 'oauth_client_plugin_public/finish', :locals => {:private_token => private_token, :user => params[:user]}, :layout => false else redirect_to :controller => :home end @@ -54,7 +54,12 @@ class OauthClientPluginPublicController < PublicController session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish) name = auth.info.name name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : '' - redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} + + if session[:oauth_client_popup] + redirect_to :controller => :oauth_client_plugin_public, :action => :finish, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} + else + redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} + end end end diff --git a/plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb b/plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb index 1a8adf9..55dd8dc 100644 --- a/plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb +++ b/plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb @@ -1,7 +1,7 @@ -- libgit2 0.21.2