]> source.dussan.org Git - redmine.git/commitdiff
Additional email addresses are not displayed in user profile page (#33601).
authorGo MAEDA <maeda@farend.jp>
Sat, 27 Jun 2020 05:43:42 +0000 (05:43 +0000)
committerGo MAEDA <maeda@farend.jp>
Sat, 27 Jun 2020 05:43:42 +0000 (05:43 +0000)
Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@19836 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/users_helper.rb
app/views/users/show.html.erb
test/functional/users_controller_test.rb

index c9e4e198fa9f5f4429b82917104b117991dfac6b..e773b9eeee20d1c3246f1dddb9959db75dd55c3a 100644 (file)
@@ -60,6 +60,12 @@ module UsersHelper
     end
   end
 
+  def user_emails(user)
+    emails = [user.mail]
+    emails += user.email_addresses.order(:id).where(:is_default => false).pluck(:address)
+    emails.map {|email| mail_to(email, nil)}.join(', ').html_safe
+  end
+
   def user_settings_tabs
     tabs = [{:name => 'general', :partial => 'users/general', :label => :label_general},
             {:name => 'memberships', :partial => 'users/memberships', :label => :label_project_plural}
index e97119bab99ff4ede86a2aa8972e9dee0fe56428..fabf91dae8cd603bcc1eae702bf101482a429615 100644 (file)
@@ -9,7 +9,7 @@
 <ul>
   <li><%=l(:field_login)%>: <%= @user.login %></li>
   <% unless @user.pref.hide_mail %>
-    <li><%=l(:field_mail)%>: <%= mail_to(@user.mail, nil, :encode => 'javascript') %></li>
+    <li><%=l(:field_mail)%>: <%= user_emails(@user) %></li>
   <% end %>
   <% @user.visible_custom_field_values.each do |custom_value| %>
   <% if !custom_value.value.blank? %>
index 35a1e82d7cd6972c347352d0b838ad0c7b5ae1cb..0362d1fc89d4066bb938bbc04df7babaabf114eb 100644 (file)
@@ -255,6 +255,20 @@ class UsersControllerTest < Redmine::ControllerTest
     end
   end
 
+  def test_show_should_list_all_emails
+    EmailAddress.create!(user_id: 3, address: 'dlopper@example.net')
+    EmailAddress.create!(user_id: 3, address: 'dlopper@example.org')
+
+    @request.session[:user_id] = 1
+    get :show, params: {id: 3}
+
+    assert_select 'li', text: /Email:/ do
+      assert_select 'a:nth-of-type(1)', text: 'dlopper@somenet.foo'
+      assert_select 'a:nth-of-type(2)', text: 'dlopper@example.net'
+      assert_select 'a:nth-of-type(3)', text: 'dlopper@example.org'
+    end
+  end
+
   def test_new
     get :new
     assert_response :success