diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e3c858db4..03fb26d4c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -60,19 +60,20 @@ module ApplicationHelper case principal when User name = h(principal.name(options[:format])) + css_classes = '' if principal.active? || (User.current.admin? && principal.logged?) url = user_url(principal, :only_path => only_path) - css_classes = principal.css_classes + css_classes += principal.css_classes end when Group name = h(principal.to_s) url = group_url(principal, :only_path => only_path) - css_classes = 'group' + css_classes = principal.css_classes else name = h(principal.to_s) end - css_classes += " #{options[:class]}" if options[:class].present? + css_classes += " #{options[:class]}" if css_classes && options[:class].present? url ? link_to(name, url, :class => css_classes) : name end diff --git a/app/models/group.rb b/app/models/group.rb index a1fd35602..a676816ec 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -73,6 +73,10 @@ class Group < Principal !builtin? end + def css_classes + 'group' + end + def user_added(user) members.each do |member| next if member.project.nil? diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index 6caafcb89..108b0dfae 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -1701,12 +1701,18 @@ class ApplicationHelperTest < Redmine::HelperTest end end - def test_link_to_user_should_link_to_locked_user_if_current_user_is_admin + def test_link_to_user_should_link_to_locked_user_only_if_current_user_is_admin + user = User.find(5) + assert user.locked? + with_current_user User.find(1) do - user = User.find(5) - assert user.locked? - result = link_to("Dave2 Lopper2", "/users/5", :class => "user locked") - assert_equal result, link_to_user(user) + result = link_to('Dave2 Lopper2', '/users/5', :class => 'user locked assigned_to') + assert_equal result, link_to_user(user, :class => 'assigned_to') + end + + with_current_user User.find(2) do + result = 'Dave2 Lopper2' + assert_equal result, link_to_user(user, :class => 'assigned_to') end end @@ -1722,6 +1728,12 @@ class ApplicationHelperTest < Redmine::HelperTest assert_equal result, link_to_principal(group) end + def test_link_to_principal_should_return_string_representation_for_unknown_type_principal + unknown_principal = 'foo' + result = unknown_principal.to_s + assert_equal result, link_to_principal(unknown_principal, :class => 'bar') + end + def test_link_to_group_should_return_only_group_name_for_non_admin_users User.current = nil group = Group.find(10)