diff --git a/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb b/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb index 6c4fe08..eb101e8 100644 --- a/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb +++ b/plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb @@ -9,6 +9,7 @@ class OauthClientPluginPublicController < PublicController session[:user] = user redirect_to :controller => :account, :action => :login else + session[:oauth_email] = auth.info.email name = auth.info.name name ||= auth.extra && auth.extra.raw_info ? auth.extra.raw_info.name : '' redirect_to :controller => :account, :action => :signup, :user => {:login => login, :email => auth.info.email, :oauth_providers => [{:provider => auth.provider, :uid => auth.uid}]}, :profile_data => {:name => name} diff --git a/plugins/oauth_client/lib/oauth_client_plugin.rb b/plugins/oauth_client/lib/oauth_client_plugin.rb index 917d34c..924376e 100644 --- a/plugins/oauth_client/lib/oauth_client_plugin.rb +++ b/plugins/oauth_client/lib/oauth_client_plugin.rb @@ -69,4 +69,8 @@ class OauthClientPlugin < Noosfero::Plugin end end + def account_controller_filters + {:type => 'before_filter', :method_name => 'signup', :block => proc { raise "Wrong email for oauth signup" if request.post? && session[:oauth_email].present? && session[:oauth_email] != params[:user][:email] } } + end + end diff --git a/plugins/oauth_client/views/account/_oauth_signup.html.erb b/plugins/oauth_client/views/account/_oauth_signup.html.erb index 561bfe1..edfe74d 100644 --- a/plugins/oauth_client/views/account/_oauth_signup.html.erb +++ b/plugins/oauth_client/views/account/_oauth_signup.html.erb @@ -2,10 +2,13 @@ <%= hidden_field_tag 'user[oauth_providers][][uid]', @user.oauth_providers.first[:uid] %> + +
+ <%= labelled_form_field(_('Email'), text_field(:user, :email, :class => "disabled", :readonly => true)) %> +
-- libgit2 0.21.2