Commit 2d0e156492c4e1d58de3eb793c839d2a8d153a3c
Exists in
staging
and in
4 other branches
Merge branch 'production' of gitlab.com:participa/noosfero into production
Showing
6 changed files
with
30 additions
and
13 deletions
Show diff stats
Gemfile
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
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 < 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 < 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 < 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> | ... | ... |