Patch #37994 ยป 37994.patch
| app/helpers/application_helper.rb | ||
|---|---|---|
| 49 | 49 |
end |
| 50 | 50 |
end |
| 51 | 51 | |
| 52 |
# Displays a link to user's account page if active |
|
| 53 |
def link_to_user(user, options={})
|
|
| 54 |
user.is_a?(User) ? link_to_principal(user, options) : h(user.to_s) |
|
| 55 |
end |
|
| 56 | ||
| 57 | 52 |
# Displays a link to user's account page or group page |
| 58 | 53 |
def link_to_principal(principal, options={})
|
| 59 | 54 |
only_path = options[:only_path].nil? ? true : options[:only_path] |
| ... | ... | |
| 77 | 72 |
css_classes += " #{options[:class]}" if css_classes && options[:class].present?
|
| 78 | 73 |
url ? link_to(name, url, :class => css_classes) : name |
| 79 | 74 |
end |
| 80 | ||
| 81 |
# Displays a link to edit group page if current user is admin |
|
| 82 |
# Otherwise display only the group name |
|
| 83 |
def link_to_group(group, options={})
|
|
| 84 |
if group.is_a?(Group) |
|
| 85 |
name = h(group.name) |
|
| 86 |
if User.current.admin? |
|
| 87 |
only_path = options[:only_path].nil? ? true : options[:only_path] |
|
| 88 |
link_to name, edit_group_path(group, :only_path => only_path) |
|
| 89 |
else |
|
| 90 |
name |
|
| 91 |
end |
|
| 92 |
end |
|
| 93 |
end |
|
| 75 |
alias link_to_user link_to_principal |
|
| 76 |
alias link_to_group link_to_principal |
|
| 94 | 77 | |
| 95 | 78 |
# Displays a link to +issue+ with its subject. |
| 96 | 79 |
# Examples: |
| test/functional/groups_controller_test.rb | ||
|---|---|---|
| 289 | 289 |
assert_response :success |
| 290 | 290 |
assert_include 'John Smith', response.body |
| 291 | 291 |
end |
| 292 | ||
| 293 |
def test_show_should_display_edit_link_for_admin |
|
| 294 |
@request.session[:user_id] = 1 |
|
| 295 |
get :show, :params => {:id => 10}
|
|
| 296 |
assert_response :success |
|
| 297 | ||
| 298 |
assert_select '.contextual > .icon-edit' |
|
| 299 |
end |
|
| 292 | 300 |
end |
| test/functional/users_controller_test.rb | ||
|---|---|---|
| 301 | 301 |
assert_select 'div#groups', 1 do |
| 302 | 302 |
assert_select 'h3', :text => 'Groups' |
| 303 | 303 |
assert_select 'li', 2 |
| 304 |
assert_select 'a[href=?]', '/groups/10/edit', :text => 'A Team'
|
|
| 305 |
assert_select 'a[href=?]', '/groups/11/edit', :text => 'B Team'
|
|
| 304 |
assert_select 'a[href=?]', '/groups/10', :text => 'A Team' |
|
| 305 |
assert_select 'a[href=?]', '/groups/11', :text => 'B Team' |
|
| 306 | 306 |
end |
| 307 | 307 |
end |
| 308 | 308 | |
| test/helpers/application_helper_test.rb | ||
|---|---|---|
| 1851 | 1851 |
assert_include "<>'&", link_to_principal("<>'&")
|
| 1852 | 1852 |
end |
| 1853 | 1853 | |
| 1854 |
def test_link_to_group_should_return_only_group_name_for_non_admin_users |
|
| 1855 |
User.current = nil |
|
| 1856 |
group = Group.find(10) |
|
| 1857 |
assert_equal "A Team", link_to_group(group) |
|
| 1858 |
end |
|
| 1859 | ||
| 1860 |
def test_link_to_group_should_link_to_group_edit_page_for_admin_users |
|
| 1861 |
User.current = User.find(1) |
|
| 1862 |
group = Group.find(10) |
|
| 1863 |
result = link_to("A Team", "/groups/10/edit")
|
|
| 1864 |
assert_equal result, link_to_group(group) |
|
| 1865 |
end |
|
| 1866 | ||
| 1867 | 1854 |
def test_link_to_user_should_not_link_to_anonymous |
| 1868 | 1855 |
user = User.anonymous |
| 1869 | 1856 |
assert user.anonymous? |