diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 3c31895..a4fad4b 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -122,6 +122,7 @@ class AccountController < ApplicationController user_params = params[:user] || {} @user = User.new @user.safe_attributes = user_params + @user.pref.attributes = params[:pref] if params[:pref] @user.admin = false @user.register if session[:auth_source_registration] diff --git a/app/views/account/register.html.erb b/app/views/account/register.html.erb index f655514..0cd0d8c 100644 --- a/app/views/account/register.html.erb +++ b/app/views/account/register.html.erb @@ -16,6 +16,10 @@
<%= f.text_field :firstname, :required => true %>
<%= f.text_field :lastname, :required => true %>
<%= f.text_field :mail, :required => true %>
+<%= labelled_fields_for :pref, @user.pref do |pref_fields| %> +<%= pref_fields.check_box :hide_mail %>
+<% end %> + <% unless @user.force_default_language? %><%= f.select :language, lang_options_for_select %>
diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 8dfda0f..f308c93 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -247,6 +247,18 @@ class AccountControllerTest < ActionController::TestCase end end + def test_get_register_should_show_hide_mail_preference + get :register + assert_select 'input[name=?][checked=checked]', 'pref[hide_mail]' + end + + def test_get_register_should_show_hide_mail_preference_with_setting_turned_off + with_settings :default_users_hide_mail => '0' do + get :register + assert_select 'input[name=?]:not([checked=checked])', 'pref[hide_mail]' + end + end + # See integration/account_test.rb for the full test def test_post_register_with_registration_on with_settings :self_registration => '3' do @@ -287,6 +299,22 @@ class AccountControllerTest < ActionController::TestCase end end + def test_post_register_should_create_user_with_hide_mail_preference + with_settings :default_users_hide_mail => '0' do + user = new_record(User) do + post :register, :user => { + :login => 'register', + :password => 'secret123', :password_confirmation => 'secret123', + :firstname => 'John', :lastname => 'Doe', + :mail => 'register@example.com' + }, :pref => { + :hide_mail => '1' + } + end + assert_equal true, user.pref.hide_mail + end + end + def test_get_lost_password_should_display_lost_password_form get :lost_password assert_response :success