Commit 2d0e156492c4e1d58de3eb793c839d2a8d153a3c

Authored by Leandro Santos
2 parents 3779f8e0 5eff5bf9

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

Gemfile
... ... @@ -57,4 +57,4 @@ eval(File.read('config/Gemfile'), binding) rescue nil
57 57 # dependencies.
58 58 Dir.glob('config/plugins/*/Gemfile').each do |gemfile|
59 59 eval File.read(gemfile)
60   -end
61 60 \ No newline at end of file
  61 +end
... ...
lib/noosfero/api/api.rb
... ... @@ -6,7 +6,15 @@ module Noosfero
6 6 module API
7 7 class API < Grape::API
8 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 18 @@NOOSFERO_CONF = nil
11 19  
12 20 def self.NOOSFERO_CONF
... ...
lib/noosfero/api/request_logger.rb
... ... @@ -10,7 +10,6 @@ module Noosfero
10 10 params: request.params.to_hash.except('password'),
11 11 method: request.request_method,
12 12 total: (duration * 1000).round(2),
13   - db: @db_duration.round(2),
14 13 }
15 14 end
16 15 end
... ...
lib/noosfero/api/session.rb
... ... @@ -39,12 +39,16 @@ module Noosfero
39 39 unique_attributes! User, [:email, :login]
40 40 attrs = attributes_for_keys [:email, :login, :password]
41 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 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 52 user.activate
49 53 user.generate_private_token!
50 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 19 end
20 20  
21 21 def finish
22   - if logged_in? && session.delete(:oauth_client_popup)
  22 + if session.delete(:oauth_client_popup) || params[: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
... ... @@ -36,7 +36,8 @@ class OauthClientPluginPublicController &lt; PublicController
36 36 unless user_provider
37 37 user_provider = user.oauth_user_providers.create(:user => user, :provider => provider, :enabled => true)
38 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 41 session[:user] = user.id
41 42 else
42 43 session[:notice] = _("Can't login with #{provider.name}")
... ... @@ -54,7 +55,12 @@ class OauthClientPluginPublicController &lt; PublicController
54 55 session[:return_to] = url_for(:controller => :oauth_client_plugin_public, :action => :finish)
55 56 name = auth.info.name
56 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 64 end
59 65  
60 66 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>
... ...