mirror of
https://github.com/redmine/redmine.git
synced 2025-11-14 17:26:06 +01:00
Display user's groups on profile (#12796).
Only for admins or when viewing its own profile. git-svn-id: http://svn.redmine.org/redmine/trunk@17973 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -65,6 +65,20 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Displays a link to edit group page if current user is admin
|
||||||
|
# Otherwise display only the group name
|
||||||
|
def link_to_group(group, options={})
|
||||||
|
if group.is_a?(Group)
|
||||||
|
name = h(group.name)
|
||||||
|
if (User.current.admin?)
|
||||||
|
only_path = options[:only_path].nil? ? true : options[:only_path]
|
||||||
|
link_to name, edit_group_path(group, :only_path => only_path)
|
||||||
|
else
|
||||||
|
name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Displays a link to +issue+ with its subject.
|
# Displays a link to +issue+ with its subject.
|
||||||
# Examples:
|
# Examples:
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -84,6 +84,18 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<% if (User.current == @user || User.current.admin?) && @user.groups.any? %>
|
||||||
|
<div id="groups">
|
||||||
|
<h3><%=l(:label_group_plural)%></h3>
|
||||||
|
<ul>
|
||||||
|
<% for group in @user.groups %>
|
||||||
|
<li><%= link_to_group(group) %>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= call_hook :view_account_left_bottom, :user => @user %>
|
<%= call_hook :view_account_left_bottom, :user => @user %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -112,6 +112,9 @@ class UsersControllerTest < Redmine::ControllerTest
|
|||||||
get :show, :params => {:id => 2}
|
get :show, :params => {:id => 2}
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select 'h2', :text => /John Smith/
|
assert_select 'h2', :text => /John Smith/
|
||||||
|
|
||||||
|
# groups block should not be rendeder for users which are not part of any group
|
||||||
|
assert_select 'div#groups', 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_show_should_display_visible_custom_fields
|
def test_show_should_display_visible_custom_fields
|
||||||
@@ -206,6 +209,18 @@ class UsersControllerTest < Redmine::ControllerTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_user_should_list_user_groups
|
||||||
|
@request.session[:user_id] = 1
|
||||||
|
get :show, :params => {:id => 8}
|
||||||
|
|
||||||
|
assert_select 'div#groups', 1 do
|
||||||
|
assert_select 'h3', :text => 'Groups'
|
||||||
|
assert_select 'li', 2
|
||||||
|
assert_select 'a[href=?]', '/groups/10/edit', :text => 'A Team'
|
||||||
|
assert_select 'a[href=?]', '/groups/11/edit', :text => 'B Team'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_new
|
def test_new
|
||||||
get :new
|
get :new
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
|||||||
@@ -1536,6 +1536,19 @@ RAW
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_link_to_group_should_return_only_group_name_for_non_admin_users
|
||||||
|
User.current = nil
|
||||||
|
group = Group.find(10)
|
||||||
|
assert_equal "A Team", link_to_group(group)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_link_to_group_should_link_to_group_edit_page_for_admin_users
|
||||||
|
User.current = User.find(1)
|
||||||
|
group = Group.find(10)
|
||||||
|
result = link_to("A Team", "/groups/10/edit")
|
||||||
|
assert_equal result, link_to_group(group)
|
||||||
|
end
|
||||||
|
|
||||||
def test_link_to_user_should_not_link_to_anonymous
|
def test_link_to_user_should_not_link_to_anonymous
|
||||||
user = User.anonymous
|
user = User.anonymous
|
||||||
assert user.anonymous?
|
assert user.anonymous?
|
||||||
|
|||||||
Reference in New Issue
Block a user