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 a88d005..c9a0035 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 @@ -18,6 +18,16 @@ class OauthClientPluginPublicController < PublicController redirect_to root_url end + def finish + if logged_in? && 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} + else + redirect_to :controller => :home + end + end + protected def login(user) @@ -31,8 +41,8 @@ class OauthClientPluginPublicController < PublicController else session[:notice] = _("Can't login with #{provider.name}") end - session[:oauth_client_login] = true - session[:return_to] = '/' + session[:oauth_client_popup] = true if request.env["omniauth.params"]['oauth_client_popup'] + session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish) redirect_to :controller => :account, :action => :login end @@ -40,8 +50,8 @@ class OauthClientPluginPublicController < PublicController def signup(auth) login = auth.info.email.split('@').first session[:oauth_data] = auth - session[:oauth_client_login] = true - session[:return_to] = '/' + session[:oauth_client_popup] = true if request.env["omniauth.params"]['oauth_client_popup'] + 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} diff --git a/plugins/oauth_client/lib/oauth_client_plugin.rb b/plugins/oauth_client/lib/oauth_client_plugin.rb index 6e1ae3b..74a05c7 100644 --- a/plugins/oauth_client/lib/oauth_client_plugin.rb +++ b/plugins/oauth_client/lib/oauth_client_plugin.rb @@ -29,14 +29,6 @@ class OauthClientPlugin < Noosfero::Plugin end end - def body_ending - if logged_in? && session.delete(:oauth_client_login) - current_user.private_token_expired? if current_user.present? - private_token = current_user.present? ? current_user.private_token : '' - "" - end - end - def js_files 'main.js' 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 new file mode 100644 index 0000000..7d4972a --- /dev/null +++ b/plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb @@ -0,0 +1 @@ + -- libgit2 0.21.2