Commit 7b3a498885b05eec7419e05e3fb81f935bb0f53d
1 parent
a892005a
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
oauth_client: improve login with popup
Showing
2 changed files
with
9 additions
and
4 deletions
Show diff stats
plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb
... | ... | @@ -19,10 +19,10 @@ class OauthClientPluginPublicController < PublicController |
19 | 19 | end |
20 | 20 | |
21 | 21 | def finish |
22 | - if logged_in? && session.delete(:oauth_client_popup) | |
22 | + if session.delete(:oauth_client_popup) | |
23 | 23 | current_user.private_token_expired? if current_user.present? |
24 | 24 | private_token = current_user.present? ? current_user.private_token : '' |
25 | - render 'oauth_client_plugin_public/finish', :locals => {:private_token => private_token} | |
25 | + render 'oauth_client_plugin_public/finish', :locals => {:private_token => private_token, :user => params[:user]}, :layout => false | |
26 | 26 | else |
27 | 27 | redirect_to :controller => :home |
28 | 28 | end |
... | ... | @@ -54,7 +54,12 @@ class OauthClientPluginPublicController < PublicController |
54 | 54 | session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish) |
55 | 55 | name = auth.info.name |
56 | 56 | name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : '' |
57 | - redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} | |
57 | + | |
58 | + if session[:oauth_client_popup] | |
59 | + redirect_to :controller => :oauth_client_plugin_public, :action => :finish, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} | |
60 | + else | |
61 | + redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} | |
62 | + end | |
58 | 63 | end |
59 | 64 | |
60 | 65 | end | ... | ... |
plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb
1 | 1 | <script> |
2 | 2 | window.addEventListener("message", function(ev) { |
3 | 3 | if (ev.data.message === "requestOauthClientPluginResult") { |
4 | - ev.source.postMessage({ message: "oauthClientPluginResult", logged_in: <%= logged_in? %>, private_token: '<%= private_token %>' }, "*"); | |
4 | + ev.source.postMessage({ message: "oauthClientPluginResult", logged_in: <%= logged_in? %>, private_token: '<%= private_token %>', user: <%= user.to_json %> }, "*"); | |
5 | 5 | } |
6 | 6 | }); |
7 | 7 | </script> | ... | ... |