Commit ec7d6887e550edb1e9115c46f2cdfbe2d20d5321

Authored by Victor Costa
2 parents 2235e5e6 06bd6b59

Merge branch 'proposal-login' into stable

plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb
... ... @@ -18,6 +18,16 @@ class OauthClientPluginPublicController < PublicController
18 18 redirect_to root_url
19 19 end
20 20  
  21 + def finish
  22 + if logged_in? && session.delete(:oauth_client_popup)
  23 + current_user.private_token_expired? if current_user.present?
  24 + private_token = current_user.present? ? current_user.private_token : ''
  25 + render 'oauth_client_plugin_public/finish', :locals => {:private_token => private_token}
  26 + else
  27 + redirect_to :controller => :home
  28 + end
  29 + end
  30 +
21 31 protected
22 32  
23 33 def login(user)
... ... @@ -31,8 +41,8 @@ class OauthClientPluginPublicController < PublicController
31 41 else
32 42 session[:notice] = _("Can't login with #{provider.name}")
33 43 end
34   - session[:oauth_client_login] = true
35   - session[:return_to] = '/'
  44 + session[:oauth_client_popup] = true if request.env["omniauth.params"]['oauth_client_popup']
  45 + session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish)
36 46  
37 47 redirect_to :controller => :account, :action => :login
38 48 end
... ... @@ -40,8 +50,8 @@ class OauthClientPluginPublicController < PublicController
40 50 def signup(auth)
41 51 login = auth.info.email.split('@').first
42 52 session[:oauth_data] = auth
43   - session[:oauth_client_login] = true
44   - session[:return_to] = '/'
  53 + session[:oauth_client_popup] = true if request.env["omniauth.params"]['oauth_client_popup']
  54 + session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish)
45 55 name = auth.info.name
46 56 name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : ''
47 57 redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name}
... ...
plugins/oauth_client/lib/oauth_client_plugin.rb
... ... @@ -29,14 +29,6 @@ class OauthClientPlugin < Noosfero::Plugin
29 29 end
30 30 end
31 31  
32   - def body_ending
33   - if logged_in? && session.delete(:oauth_client_login)
34   - current_user.private_token_expired? if current_user.present?
35   - private_token = current_user.present? ? current_user.private_token : ''
36   - "<script>oauthPluginCloseLoginPopup(#{logged_in?}, '#{private_token}');</script>"
37   - end
38   - end
39   -
40 32 def js_files
41 33 'main.js'
42 34 end
... ...
plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb 0 → 100644
... ... @@ -0,0 +1 @@
  1 +<script>oauthPluginCloseLoginPopup(<%= logged_in? %>, '<%= private_token %>');</script>
... ...