From 53d447a86c6d82cddb1c9372dba8f753d5b69b8f Mon Sep 17 00:00:00 2001 From: Larissa Reis Date: Fri, 18 Oct 2013 12:16:27 -0300 Subject: [PATCH] Lists all roles a user has in a community --- app/helpers/application_helper.rb | 9 +++++++-- test/unit/application_helper_test.rb | 12 ++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 07e41ad..943ec2d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -727,8 +727,13 @@ module ApplicationHelper end def rolename_for(profile, resource) - role = profile.role_assignments.find_by_resource_id(resource.id).role - content_tag('span', role.name, :style => "color: #{role_color(role, resource.environment.id)}") + roles = profile.role_assignments.select{ |a| a.resource_id == resource.id }.sort_by{ |s| s.role_id }.map(&:role) + names = '' + roles.each do |role| + names += content_tag('span', role.name, :style => "color: #{role_color(role, resource.environment.id)}") + names += ', ' + end + names.slice 0..-3 end def role_color(role, env_id) diff --git a/test/unit/application_helper_test.rb b/test/unit/application_helper_test.rb index 379244a..e4df145 100644 --- a/test/unit/application_helper_test.rb +++ b/test/unit/application_helper_test.rb @@ -143,6 +143,18 @@ class ApplicationHelperTest < ActiveSupport::TestCase assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Member' end + should 'rolenames for a member admin' do + member1 = create_user('usertest1').person + member2 = create_user('usertest2').person + community = fast_create(Community, :name => 'new community', :identifier => 'new-community', :environment_id => Environment.default.id) + community.add_member(member1) + # member2 is both a admin and a member + community.add_member(member2) + community.add_admin(member2) + assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Member' + assert_tag_in_string rolename_for(member2, community), :tag => 'span', :content => 'Profile Administrator' + end + should 'get theme from environment by default' do @environment = mock @environment.stubs(:theme).returns('my-environment-theme') -- libgit2 0.21.2