mirror of
				https://github.com/redmine/redmine.git
				synced 2025-11-03 20:06:24 +01:00 
			
		
		
		
	Adds links to locked users when current user is admin.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10673 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
		@@ -47,8 +47,8 @@ module ApplicationHelper
 | 
				
			|||||||
  def link_to_user(user, options={})
 | 
					  def link_to_user(user, options={})
 | 
				
			||||||
    if user.is_a?(User)
 | 
					    if user.is_a?(User)
 | 
				
			||||||
      name = h(user.name(options[:format]))
 | 
					      name = h(user.name(options[:format]))
 | 
				
			||||||
      if user.active?
 | 
					      if user.active? || (User.current.admin? && user.logged?)
 | 
				
			||||||
        link_to name, :controller => 'users', :action => 'show', :id => user
 | 
					        link_to name, {:controller => 'users', :action => 'show', :id => user}, :class => user.css_classes
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        name
 | 
					        name
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -387,6 +387,17 @@ class User < Principal
 | 
				
			|||||||
    name
 | 
					    name
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  CSS_CLASS_BY_STATUS = {
 | 
				
			||||||
 | 
					    STATUS_ANONYMOUS  => 'anon',
 | 
				
			||||||
 | 
					    STATUS_ACTIVE     => 'active',
 | 
				
			||||||
 | 
					    STATUS_REGISTERED => 'registered',
 | 
				
			||||||
 | 
					    STATUS_LOCKED     => 'locked'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def css_classes
 | 
				
			||||||
 | 
					    "user #{CSS_CLASS_BY_STATUS[status]}"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Returns the current day according to user's time zone
 | 
					  # Returns the current day according to user's time zone
 | 
				
			||||||
  def today
 | 
					  def today
 | 
				
			||||||
    if time_zone.nil?
 | 
					    if time_zone.nil?
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,7 +36,7 @@
 | 
				
			|||||||
  </tr></thead>
 | 
					  </tr></thead>
 | 
				
			||||||
  <tbody>
 | 
					  <tbody>
 | 
				
			||||||
<% for user in @users -%>
 | 
					<% for user in @users -%>
 | 
				
			||||||
  <tr class="user <%= cycle("odd", "even") %> <%= %w(anon active registered locked)[user.status] %>">
 | 
					  <tr class="<%= user.css_classes %> <%= cycle("odd", "even") %>">
 | 
				
			||||||
  <td class="username"><%= avatar(user, :size => "14") %><%= link_to h(user.login), edit_user_path(user) %></td>
 | 
					  <td class="username"><%= avatar(user, :size => "14") %><%= link_to h(user.login), edit_user_path(user) %></td>
 | 
				
			||||||
  <td class="firstname"><%= h(user.firstname) %></td>
 | 
					  <td class="firstname"><%= h(user.firstname) %></td>
 | 
				
			||||||
  <td class="lastname"><%= h(user.lastname) %></td>
 | 
					  <td class="lastname"><%= h(user.lastname) %></td>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -107,6 +107,7 @@ a img{ border: 0; }
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; }
 | 
					a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; }
 | 
				
			||||||
a.project.closed, a.project.closed:link, a.project.closed:visited { color: #999; }
 | 
					a.project.closed, a.project.closed:link, a.project.closed:visited { color: #999; }
 | 
				
			||||||
 | 
					a.user.locked, a.user.locked:link, a.user.locked:visited {color: #999;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sidebar a.selected {line-height:1.7em; padding:1px 3px 2px 2px; margin-left:-2px; background-color:#9DB9D5; color:#fff; border-radius:2px;}
 | 
					#sidebar a.selected {line-height:1.7em; padding:1px 3px 2px 2px; margin-left:-2px; background-color:#9DB9D5; color:#fff; border-radius:2px;}
 | 
				
			||||||
#sidebar a.selected:hover {text-decoration:none;}
 | 
					#sidebar a.selected:hover {text-decoration:none;}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -114,6 +114,15 @@ class ActiveSupport::TestCase
 | 
				
			|||||||
    saved_settings.each {|k, v| Setting[k] = v} if saved_settings
 | 
					    saved_settings.each {|k, v| Setting[k] = v} if saved_settings
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Yields the block with user as the current user
 | 
				
			||||||
 | 
					  def with_current_user(user, &block)
 | 
				
			||||||
 | 
					    saved_user = User.current
 | 
				
			||||||
 | 
					    User.current = user
 | 
				
			||||||
 | 
					    yield
 | 
				
			||||||
 | 
					  ensure
 | 
				
			||||||
 | 
					    User.current = saved_user
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def change_user_password(login, new_password)
 | 
					  def change_user_password(login, new_password)
 | 
				
			||||||
    user = User.first(:conditions => {:login => login})
 | 
					    user = User.first(:conditions => {:login => login})
 | 
				
			||||||
    user.password, user.password_confirmation = new_password, new_password
 | 
					    user.password, user.password_confirmation = new_password, new_password
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1010,15 +1010,23 @@ RAW
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def test_link_to_user
 | 
					  def test_link_to_user
 | 
				
			||||||
    user = User.find(2)
 | 
					    user = User.find(2)
 | 
				
			||||||
    t = link_to_user(user)
 | 
					    assert_equal '<a href="/users/2" class="user active">John Smith</a>', link_to_user(user)
 | 
				
			||||||
    assert_equal "<a href=\"/users/2\">#{ user.name }</a>", t
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def test_link_to_user_should_not_link_to_locked_user
 | 
					  def test_link_to_user_should_not_link_to_locked_user
 | 
				
			||||||
 | 
					    with_current_user nil do
 | 
				
			||||||
      user = User.find(5)
 | 
					      user = User.find(5)
 | 
				
			||||||
      assert user.locked?
 | 
					      assert user.locked?
 | 
				
			||||||
    t = link_to_user(user)
 | 
					      assert_equal 'Dave2 Lopper2', link_to_user(user)
 | 
				
			||||||
    assert_equal user.name, t
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def test_link_to_user_should_link_to_locked_user_if_current_user_is_admin
 | 
				
			||||||
 | 
					    with_current_user User.find(1) do
 | 
				
			||||||
 | 
					      user = User.find(5)
 | 
				
			||||||
 | 
					      assert user.locked?
 | 
				
			||||||
 | 
					      assert_equal '<a href="/users/5" class="user locked">Dave2 Lopper2</a>', link_to_user(user)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def test_link_to_user_should_not_link_to_anonymous
 | 
					  def test_link_to_user_should_not_link_to_anonymous
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user