diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-12-13 15:39:09 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-12-13 15:39:09 +0000 |
commit | f4c37007025b5bdd018c1b95f54a077a4c52319e (patch) | |
tree | 8de70b46aa6cd6ccd19c28c784eef5bf69b90e8c | |
parent | 1b5a4faf0c74cd31f6f73786f8a870651305740c (diff) | |
download | redmine-f4c37007025b5bdd018c1b95f54a077a4c52319e.tar.gz redmine-f4c37007025b5bdd018c1b95f54a077a4c52319e.zip |
Adds the "Hide my email address" option on the registration form (#21500).
git-svn-id: http://svn.redmine.org/redmine/trunk@14976 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/account_controller.rb | 1 | ||||
-rw-r--r-- | app/views/account/register.html.erb | 4 | ||||
-rw-r--r-- | test/functional/account_controller_test.rb | 28 |
3 files changed, 33 insertions, 0 deletions
diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 3c318957b..a4fad4b5c 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 f655514a3..0cd0d8cff 100644 --- a/app/views/account/register.html.erb +++ b/app/views/account/register.html.erb @@ -16,6 +16,10 @@ <p><%= f.text_field :firstname, :required => true %></p> <p><%= f.text_field :lastname, :required => true %></p> <p><%= f.text_field :mail, :required => true %></p> +<%= labelled_fields_for :pref, @user.pref do |pref_fields| %> +<p><%= pref_fields.check_box :hide_mail %></p> +<% end %> + <% unless @user.force_default_language? %> <p><%= f.select :language, lang_options_for_select %></p> diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 8dfda0f7a..f308c935f 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 |