##// END OF EJS Templates
Adds links to locked users when current user is admin....
Jean-Philippe Lang -
r10462:7729178d9d50
parent child
Show More
@@ -47,8 +47,8 module ApplicationHelper
47 47 def link_to_user(user, options={})
48 48 if user.is_a?(User)
49 49 name = h(user.name(options[:format]))
50 if user.active?
51 link_to name, :controller => 'users', :action => 'show', :id => user
50 if user.active? || (User.current.admin? && user.logged?)
51 link_to name, {:controller => 'users', :action => 'show', :id => user}, :class => user.css_classes
52 52 else
53 53 name
54 54 end
@@ -387,6 +387,17 class User < Principal
387 387 name
388 388 end
389 389
390 CSS_CLASS_BY_STATUS = {
391 STATUS_ANONYMOUS => 'anon',
392 STATUS_ACTIVE => 'active',
393 STATUS_REGISTERED => 'registered',
394 STATUS_LOCKED => 'locked'
395 }
396
397 def css_classes
398 "user #{CSS_CLASS_BY_STATUS[status]}"
399 end
400
390 401 # Returns the current day according to user's time zone
391 402 def today
392 403 if time_zone.nil?
@@ -36,7 +36,7
36 36 </tr></thead>
37 37 <tbody>
38 38 <% for user in @users -%>
39 <tr class="user <%= cycle("odd", "even") %> <%= %w(anon active registered locked)[user.status] %>">
39 <tr class="<%= user.css_classes %> <%= cycle("odd", "even") %>">
40 40 <td class="username"><%= avatar(user, :size => "14") %><%= link_to h(user.login), edit_user_path(user) %></td>
41 41 <td class="firstname"><%= h(user.firstname) %></td>
42 42 <td class="lastname"><%= h(user.lastname) %></td>
@@ -107,6 +107,7 a img{ border: 0; }
107 107
108 108 a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; }
109 109 a.project.closed, a.project.closed:link, a.project.closed:visited { color: #999; }
110 a.user.locked, a.user.locked:link, a.user.locked:visited {color: #999;}
110 111
111 112 #sidebar a.selected {line-height:1.7em; padding:1px 3px 2px 2px; margin-left:-2px; background-color:#9DB9D5; color:#fff; border-radius:2px;}
112 113 #sidebar a.selected:hover {text-decoration:none;}
@@ -114,6 +114,15 class ActiveSupport::TestCase
114 114 saved_settings.each {|k, v| Setting[k] = v} if saved_settings
115 115 end
116 116
117 # Yields the block with user as the current user
118 def with_current_user(user, &block)
119 saved_user = User.current
120 User.current = user
121 yield
122 ensure
123 User.current = saved_user
124 end
125
117 126 def change_user_password(login, new_password)
118 127 user = User.first(:conditions => {:login => login})
119 128 user.password, user.password_confirmation = new_password, new_password
@@ -1010,15 +1010,23 RAW
1010 1010
1011 1011 def test_link_to_user
1012 1012 user = User.find(2)
1013 t = link_to_user(user)
1014 assert_equal "<a href=\"/users/2\">#{ user.name }</a>", t
1013 assert_equal '<a href="/users/2" class="user active">John Smith</a>', link_to_user(user)
1015 1014 end
1016 1015
1017 1016 def test_link_to_user_should_not_link_to_locked_user
1017 with_current_user nil do
1018 1018 user = User.find(5)
1019 1019 assert user.locked?
1020 t = link_to_user(user)
1021 assert_equal user.name, t
1020 assert_equal 'Dave2 Lopper2', link_to_user(user)
1021 end
1022 end
1023
1024 def test_link_to_user_should_link_to_locked_user_if_current_user_is_admin
1025 with_current_user User.find(1) do
1026 user = User.find(5)
1027 assert user.locked?
1028 assert_equal '<a href="/users/5" class="user locked">Dave2 Lopper2</a>', link_to_user(user)
1029 end
1022 1030 end
1023 1031
1024 1032 def test_link_to_user_should_not_link_to_anonymous
General Comments 0
You need to be logged in to leave comments. Login now