Commit 53d447a86c6d82cddb1c9372dba8f753d5b69b8f
Committed by
Rodrigo Souto
1 parent
da709178
Exists in
master
and in
22 other branches
Lists all roles a user has in a community
Showing
2 changed files
with
19 additions
and
2 deletions
Show diff stats
app/helpers/application_helper.rb
| ... | ... | @@ -727,8 +727,13 @@ module ApplicationHelper |
| 727 | 727 | end |
| 728 | 728 | |
| 729 | 729 | def rolename_for(profile, resource) |
| 730 | - role = profile.role_assignments.find_by_resource_id(resource.id).role | |
| 731 | - content_tag('span', role.name, :style => "color: #{role_color(role, resource.environment.id)}") | |
| 730 | + roles = profile.role_assignments.select{ |a| a.resource_id == resource.id }.sort_by{ |s| s.role_id }.map(&:role) | |
| 731 | + names = '' | |
| 732 | + roles.each do |role| | |
| 733 | + names += content_tag('span', role.name, :style => "color: #{role_color(role, resource.environment.id)}") | |
| 734 | + names += ', ' | |
| 735 | + end | |
| 736 | + names.slice 0..-3 | |
| 732 | 737 | end |
| 733 | 738 | |
| 734 | 739 | def role_color(role, env_id) | ... | ... |
test/unit/application_helper_test.rb
| ... | ... | @@ -143,6 +143,18 @@ class ApplicationHelperTest < ActiveSupport::TestCase |
| 143 | 143 | assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Member' |
| 144 | 144 | end |
| 145 | 145 | |
| 146 | + should 'rolenames for a member admin' do | |
| 147 | + member1 = create_user('usertest1').person | |
| 148 | + member2 = create_user('usertest2').person | |
| 149 | + community = fast_create(Community, :name => 'new community', :identifier => 'new-community', :environment_id => Environment.default.id) | |
| 150 | + community.add_member(member1) | |
| 151 | + # member2 is both a admin and a member | |
| 152 | + community.add_member(member2) | |
| 153 | + community.add_admin(member2) | |
| 154 | + assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Member' | |
| 155 | + assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Administrator' | |
| 156 | + end | |
| 157 | + | |
| 146 | 158 | should 'get theme from environment by default' do |
| 147 | 159 | @environment = mock |
| 148 | 160 | @environment.stubs(:theme).returns('my-environment-theme') | ... | ... |