Fixes ApplicationHelper#link_to_user

* No link to a locked user page (closes #4182)
* Translate Anonymous string

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3024 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2009-11-11 10:48:54 +00:00
parent 8f40750ad7
commit c31411ec00
39 changed files with 65 additions and 5 deletions

View File

@ -44,12 +44,17 @@ module ApplicationHelper
link_to_remote(name, options, html_options) if authorize_for(url[:controller] || params[:controller], url[:action]) link_to_remote(name, options, html_options) if authorize_for(url[:controller] || params[:controller], url[:action])
end end
# Display a link to user's account page # Displays a link to user's account page if active
def link_to_user(user, options={}) def link_to_user(user, options={})
if user.is_a?(User) if user.is_a?(User)
!user.anonymous? ? link_to(user.name(options[:format]), :controller => 'users', :action => 'show', :id => user) : 'Anonymous' name = h(user.name(options[:format]))
if user.active?
link_to name, :controller => 'users', :action => 'show', :id => user
else else
user.to_s name
end
else
h(user.to_s)
end end
end end

View File

@ -346,7 +346,7 @@ class AnonymousUser < User
# Overrides a few properties # Overrides a few properties
def logged?; false end def logged?; false end
def admin; false end def admin; false end
def name; 'Anonymous' end def name(*args); I18n.t(:label_user_anonymous) end
def mail; nil end def mail; nil end
def time_zone; nil end def time_zone; nil end
def rss_key; nil end def rss_key; nil end

View File

@ -831,3 +831,4 @@ bg:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -855,3 +855,4 @@ bs:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -834,3 +834,4 @@ ca:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -837,3 +837,4 @@ cs:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -857,3 +857,4 @@ da:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -857,3 +857,4 @@ de:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -837,3 +837,4 @@ el:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -376,6 +376,7 @@ en:
label_user: User label_user: User
label_user_plural: Users label_user_plural: Users
label_user_new: New user label_user_new: New user
label_user_anonymous: Anonymous
label_project: Project label_project: Project
label_project_new: New project label_project_new: New project
label_project_plural: Projects label_project_plural: Projects

View File

@ -878,3 +878,4 @@ es:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -867,3 +867,4 @@ fi:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -398,6 +398,7 @@ fr:
label_user: Utilisateur label_user: Utilisateur
label_user_plural: Utilisateurs label_user_plural: Utilisateurs
label_user_new: Nouvel utilisateur label_user_new: Nouvel utilisateur
label_user_anonymous: Anonyme
label_project: Projet label_project: Projet
label_project_new: Nouveau projet label_project_new: Nouveau projet
label_project_plural: Projets label_project_plural: Projets

View File

@ -857,3 +857,4 @@ gl:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -841,3 +841,4 @@ he:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -862,3 +862,4 @@
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -844,3 +844,4 @@ it:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -866,3 +866,4 @@ ja:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -897,3 +897,4 @@ ko:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -867,3 +867,4 @@ lt:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -819,3 +819,4 @@ nl:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -832,3 +832,4 @@
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -860,3 +860,4 @@ pl:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -863,3 +863,4 @@ pt-BR:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -849,3 +849,4 @@ pt:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -834,3 +834,4 @@ ro:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -945,3 +945,4 @@ ru:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -836,3 +836,4 @@ sk:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -833,3 +833,4 @@ sl:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -852,3 +852,4 @@
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -885,3 +885,4 @@ sv:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -834,3 +834,4 @@ th:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -864,3 +864,4 @@ tr:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -833,3 +833,4 @@ uk:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -896,3 +896,4 @@ vi:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -927,3 +927,4 @@
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -859,3 +859,4 @@ zh:
version_status_locked: locked version_status_locked: locked
version_status_open: open version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous

View File

@ -83,7 +83,7 @@ users_005:
users_006: users_006:
id: 6 id: 6
created_on: 2006-07-19 19:33:19 +02:00 created_on: 2006-07-19 19:33:19 +02:00
status: 1 status: 0
last_login_on: last_login_on:
language: '' language: ''
hashed_password: 1 hashed_password: 1

View File

@ -483,4 +483,24 @@ EXPECTED
Setting.gravatar_enabled = '0' Setting.gravatar_enabled = '0'
assert_nil avatar(User.find_by_mail('jsmith@somenet.foo')) assert_nil avatar(User.find_by_mail('jsmith@somenet.foo'))
end end
def test_link_to_user
user = User.find(2)
t = link_to_user(user)
assert_equal "<a href=\"/users/2\">#{ user.name }</a>", t
end
def test_link_to_user_should_not_link_to_locked_user
user = User.find(5)
assert user.locked?
t = link_to_user(user)
assert_equal user.name, t
end
def test_link_to_user_should_not_link_to_anonymous
user = User.anonymous
assert user.anonymous?
t = link_to_user(user)
assert_equal ::I18n.t(:label_user_anonymous), t
end
end end