Commit 2d0e156492c4e1d58de3eb793c839d2a8d153a3c

Authored by Leandro Santos
2 parents 3779f8e0 5eff5bf9

Merge branch 'production' of gitlab.com:participa/noosfero into production

@@ -57,4 +57,4 @@ eval(File.read('config/Gemfile'), binding) rescue nil @@ -57,4 +57,4 @@ eval(File.read('config/Gemfile'), binding) rescue nil
57 # dependencies. 57 # dependencies.
58 Dir.glob('config/plugins/*/Gemfile').each do |gemfile| 58 Dir.glob('config/plugins/*/Gemfile').each do |gemfile|
59 eval File.read(gemfile) 59 eval File.read(gemfile)
60 -end  
61 \ No newline at end of file 60 \ No newline at end of file
  61 +end
lib/noosfero/api/api.rb
@@ -6,7 +6,15 @@ module Noosfero @@ -6,7 +6,15 @@ module Noosfero
6 module API 6 module API
7 class API < Grape::API 7 class API < Grape::API
8 use Rack::JSONP 8 use Rack::JSONP
9 - 9 +
  10 + logger = Logger.new(File.join(Rails.root, 'log', "#{ENV['RAILS_ENV'] || 'production'}_api.log"))
  11 + logger.formatter = GrapeLogging::Formatters::Default.new
  12 + use RequestLogger, { logger: logger }
  13 +
  14 + rescue_from :all do |e|
  15 + logger.error e
  16 + end
  17 +
10 @@NOOSFERO_CONF = nil 18 @@NOOSFERO_CONF = nil
11 19
12 def self.NOOSFERO_CONF 20 def self.NOOSFERO_CONF
lib/noosfero/api/request_logger.rb
@@ -10,7 +10,6 @@ module Noosfero @@ -10,7 +10,6 @@ module Noosfero
10 params: request.params.to_hash.except('password'), 10 params: request.params.to_hash.except('password'),
11 method: request.request_method, 11 method: request.request_method,
12 total: (duration * 1000).round(2), 12 total: (duration * 1000).round(2),
13 - db: @db_duration.round(2),  
14 } 13 }
15 end 14 end
16 end 15 end
lib/noosfero/api/session.rb
@@ -39,12 +39,16 @@ module Noosfero @@ -39,12 +39,16 @@ module Noosfero
39 unique_attributes! User, [:email, :login] 39 unique_attributes! User, [:email, :login]
40 attrs = attributes_for_keys [:email, :login, :password] 40 attrs = attributes_for_keys [:email, :login, :password]
41 attrs[:password_confirmation] = attrs[:password] 41 attrs[:password_confirmation] = attrs[:password]
42 - remote_ip = (request.respond_to?(:remote_ip) && request.remote_ip) || (env && env['REMOTE_ADDR'])  
43 - private_key = API.NOOSFERO_CONF['api_recaptcha_private_key']  
44 - api_recaptcha_verify_uri = API.NOOSFERO_CONF['api_recaptcha_verify_uri']  
45 - captcha_result = verify_recaptcha_v2(remote_ip, params['g-recaptcha-response'], private_key, api_recaptcha_verify_uri) 42 +
  43 + #Commented for stress tests
  44 +
  45 + # remote_ip = (request.respond_to?(:remote_ip) && request.remote_ip) || (env && env['REMOTE_ADDR'])
  46 + # private_key = API.NOOSFERO_CONF['api_recaptcha_private_key']
  47 + # api_recaptcha_verify_uri = API.NOOSFERO_CONF['api_recaptcha_verify_uri']
  48 + # captcha_result = verify_recaptcha_v2(remote_ip, params['g-recaptcha-response'], private_key, api_recaptcha_verify_uri)
46 user = User.new(attrs) 49 user = User.new(attrs)
47 - if captcha_result["success"] and user.save! 50 +# if captcha_result["success"] and user.save
  51 + if user.save
48 user.activate 52 user.activate
49 user.generate_private_token! 53 user.generate_private_token!
50 present user, :with => Entities::UserLogin 54 present user, :with => Entities::UserLogin
plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb
@@ -19,10 +19,10 @@ class OauthClientPluginPublicController &lt; PublicController @@ -19,10 +19,10 @@ class OauthClientPluginPublicController &lt; PublicController
19 end 19 end
20 20
21 def finish 21 def finish
22 - if logged_in? && session.delete(:oauth_client_popup) 22 + if session.delete(:oauth_client_popup) || params[:oauth_client_popup]
23 current_user.private_token_expired? if current_user.present? 23 current_user.private_token_expired? if current_user.present?
24 private_token = current_user.present? ? current_user.private_token : '' 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 else 26 else
27 redirect_to :controller => :home 27 redirect_to :controller => :home
28 end 28 end
@@ -36,7 +36,8 @@ class OauthClientPluginPublicController &lt; PublicController @@ -36,7 +36,8 @@ class OauthClientPluginPublicController &lt; PublicController
36 unless user_provider 36 unless user_provider
37 user_provider = user.oauth_user_providers.create(:user => user, :provider => provider, :enabled => true) 37 user_provider = user.oauth_user_providers.create(:user => user, :provider => provider, :enabled => true)
38 end 38 end
39 - if user_provider.enabled? && provider.enabled? 39 + # FIXME find a better way to disable providers
  40 + if user_provider.enabled?# && provider.enabled?
40 session[:user] = user.id 41 session[:user] = user.id
41 else 42 else
42 session[:notice] = _("Can't login with #{provider.name}") 43 session[:notice] = _("Can't login with #{provider.name}")
@@ -54,7 +55,12 @@ class OauthClientPluginPublicController &lt; PublicController @@ -54,7 +55,12 @@ class OauthClientPluginPublicController &lt; PublicController
54 session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish) 55 session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish)
55 name = auth.info.name 56 name = auth.info.name
56 name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : '' 57 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} 58 +
  59 + if session[:oauth_client_popup]
  60 + redirect_to :controller => :oauth_client_plugin_public, :action => :finish, :user => {:login => login, :email => auth.info.email, :oauth_providers => [session[:provider_id]]}, :profile_data => {:name => name}, :oauth_client_popup => session[:oauth_client_popup]
  61 + else
  62 + redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email}, :profile_data => {:name => name}
  63 + end
58 end 64 end
59 65
60 end 66 end
plugins/oauth_client/views/oauth_client_plugin_public/finish.html.erb
1 <script> 1 <script>
2 window.addEventListener("message", function(ev) { 2 window.addEventListener("message", function(ev) {
3 if (ev.data.message === "requestOauthClientPluginResult") { 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 </script> 7 </script>