1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-02-01 03:57:15 +00:00

Fix NoMethodError when generating a link to a locked user (#12795, #35823).

git-svn-id: http://svn.redmine.org/redmine/trunk@21217 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2021-09-07 14:59:40 +00:00
parent 326a1b4dd2
commit bc3938fca3
3 changed files with 25 additions and 8 deletions

View File

@ -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

View File

@ -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?

View File

@ -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)