From c31411ec0029d5b2033d2d91aef18f601a8a7224 2009-11-11 10:48:54 From: Jean-Philippe Lang Date: 2009-11-11 10:48:54 Subject: [PATCH] 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 --- diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bab8830..cacfe29 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -44,12 +44,17 @@ module ApplicationHelper link_to_remote(name, options, html_options) if authorize_for(url[:controller] || params[:controller], url[:action]) 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={}) 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 + name + end else - user.to_s + h(user.to_s) end end diff --git a/app/models/user.rb b/app/models/user.rb index 3e852ac..e9c58bc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -346,7 +346,7 @@ class AnonymousUser < User # Overrides a few properties def logged?; false end def admin; false end - def name; 'Anonymous' end + def name(*args); I18n.t(:label_user_anonymous) end def mail; nil end def time_zone; nil end def rss_key; nil end diff --git a/config/locales/bg.yml b/config/locales/bg.yml index c35138a..56a14ad 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -831,3 +831,4 @@ bg: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/bs.yml b/config/locales/bs.yml index f8bf5b1..b23b2bb 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -855,3 +855,4 @@ bs: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 6a85787..a7903ad 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -834,3 +834,4 @@ ca: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 68cbb41..d65895e 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -837,3 +837,4 @@ cs: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/da.yml b/config/locales/da.yml index 00d430b..bb3a14c 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -857,3 +857,4 @@ da: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/de.yml b/config/locales/de.yml index f9ffc10..520284e 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -857,3 +857,4 @@ de: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/el.yml b/config/locales/el.yml index ce4fc26..a54952d 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -837,3 +837,4 @@ el: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/en.yml b/config/locales/en.yml index eedf48d..574ee9d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -376,6 +376,7 @@ en: label_user: User label_user_plural: Users label_user_new: New user + label_user_anonymous: Anonymous label_project: Project label_project_new: New project label_project_plural: Projects diff --git a/config/locales/es.yml b/config/locales/es.yml index 864cd14..8776faa 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -878,3 +878,4 @@ es: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 34214fe..ab677f8 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -867,3 +867,4 @@ fi: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 2c4dbf6..4d39724 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -398,6 +398,7 @@ fr: label_user: Utilisateur label_user_plural: Utilisateurs label_user_new: Nouvel utilisateur + label_user_anonymous: Anonyme label_project: Projet label_project_new: Nouveau projet label_project_plural: Projets diff --git a/config/locales/gl.yml b/config/locales/gl.yml index b2a8d49..85b59e8 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -857,3 +857,4 @@ gl: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/he.yml b/config/locales/he.yml index d60b94e..f344e81 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -841,3 +841,4 @@ he: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/hu.yml b/config/locales/hu.yml index b7c9dff..f8e0f13 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -862,3 +862,4 @@ version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/it.yml b/config/locales/it.yml index 7d6ccac..06fd50c 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -844,3 +844,4 @@ it: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 9e70679..99f8a4a 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -866,3 +866,4 @@ ja: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 4441ebe..be3b871 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -897,3 +897,4 @@ ko: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 3d7fcc6..0213916 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -867,3 +867,4 @@ lt: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 4212d44..ae5107d 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -819,3 +819,4 @@ nl: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/no.yml b/config/locales/no.yml index df91bdf..39a9ac7 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -832,3 +832,4 @@ version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/pl.yml b/config/locales/pl.yml index fa232a2..e569096 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -860,3 +860,4 @@ pl: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 51d5221..2d43e29 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -863,3 +863,4 @@ pt-BR: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/pt.yml b/config/locales/pt.yml index e9c6423..3f44627 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -849,3 +849,4 @@ pt: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/ro.yml b/config/locales/ro.yml index b624496..9f0cc87 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -834,3 +834,4 @@ ro: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 14b0033..109d55e 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -945,3 +945,4 @@ ru: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/sk.yml b/config/locales/sk.yml index efb0325..b715533 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -836,3 +836,4 @@ sk: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/sl.yml b/config/locales/sl.yml index d3a6a31..a1d142c 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -833,3 +833,4 @@ sl: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 90f3a21..ff7bb91 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -852,3 +852,4 @@ version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 301debd..3a2f82e 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -885,3 +885,4 @@ sv: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/th.yml b/config/locales/th.yml index 24d16bf..890b10e 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -834,3 +834,4 @@ th: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/tr.yml b/config/locales/tr.yml index d835ab1..a0f1977 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -864,3 +864,4 @@ tr: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 3502c52..4307c91 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -833,3 +833,4 @@ uk: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 6ae8085..cdd04a4 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -896,3 +896,4 @@ vi: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 05b4b21..9ad4e98 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -927,3 +927,4 @@ version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/config/locales/zh.yml b/config/locales/zh.yml index bb60315..04c7113 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -859,3 +859,4 @@ zh: version_status_locked: locked version_status_open: open error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened + label_user_anonymous: Anonymous diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 29d4f15..29fc6be 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -83,7 +83,7 @@ users_005: users_006: id: 6 created_on: 2006-07-19 19:33:19 +02:00 - status: 1 + status: 0 last_login_on: language: '' hashed_password: 1 diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 84fc3bd..0574215 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -483,4 +483,24 @@ EXPECTED Setting.gravatar_enabled = '0' assert_nil avatar(User.find_by_mail('jsmith@somenet.foo')) end + + def test_link_to_user + user = User.find(2) + t = link_to_user(user) + assert_equal "#{ user.name }", 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