Commit d35f1b22c7868d66ed444a400ceb51e6e6d1bd16

Authored by Victor Costa
2 parents 29828322 8d285aca

Merge branch 'proposal-login' into stable

plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb
@@ -31,6 +31,8 @@ class OauthClientPluginPublicController < PublicController @@ -31,6 +31,8 @@ class OauthClientPluginPublicController < PublicController
31 else 31 else
32 session[:notice] = _("Can't login with #{provider.name}") 32 session[:notice] = _("Can't login with #{provider.name}")
33 end 33 end
  34 + session[:oauth_client_login] = true
  35 + session[:return_to] = '/'
34 36
35 redirect_to :controller => :account, :action => :login 37 redirect_to :controller => :account, :action => :login
36 end 38 end
@@ -38,6 +40,8 @@ class OauthClientPluginPublicController < PublicController @@ -38,6 +40,8 @@ class OauthClientPluginPublicController < PublicController
38 def signup(auth) 40 def signup(auth)
39 login = auth.info.email.split('@').first 41 login = auth.info.email.split('@').first
40 session[:oauth_data] = auth 42 session[:oauth_data] = auth
  43 + session[:oauth_client_login] = true
  44 + session[:return_to] = '/'
41 name = auth.info.name 45 name = auth.info.name
42 name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : '' 46 name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : ''
43 redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name} 47 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,6 +29,18 @@ class OauthClientPlugin < Noosfero::Plugin @@ -29,6 +29,18 @@ class OauthClientPlugin < Noosfero::Plugin
29 end 29 end
30 end 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 + def js_files
  41 + 'main.js'
  42 + end
  43 +
32 PROVIDERS = { 44 PROVIDERS = {
33 :facebook => { 45 :facebook => {
34 :name => 'Facebook' 46 :name => 'Facebook'
plugins/oauth_client/public/main.js 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +function oauthPluginCloseLoginPopup(loggedIn, privateToken) {
  2 + if (window.opener && typeof window.opener.oauthPluginHandleLoginResult == 'function') {
  3 + try {
  4 + window.opener.oauthPluginHandleLoginResult(loggedIn, privateToken);
  5 + } catch (err) {}
  6 + window.close();
  7 + }
  8 + return false;
  9 +}