Commit 4ee05c1c041534ecc40d3f132a04523784de49c2
1 parent
b2294d44
Exists in
master
and in
29 other branches
Filter only profile related roles
Showing
2 changed files
with
20 additions
and
1 deletions
Show diff stats
app/controllers/my_profile/memberships_controller.rb
@@ -3,7 +3,10 @@ class MembershipsController < MyProfileController | @@ -3,7 +3,10 @@ class MembershipsController < MyProfileController | ||
3 | protect 'manage_memberships', :profile | 3 | protect 'manage_memberships', :profile |
4 | 4 | ||
5 | def index | 5 | def index |
6 | - @roles = environment.roles.select{ |role| profile.role_assignments.find_by_role_id(role.id).present? } | 6 | + @roles = environment.roles.select do |role| |
7 | + ra = profile.role_assignments.find_by_role_id(role.id) | ||
8 | + ra.present? && ra.resource_type == 'Profile' | ||
9 | + end | ||
7 | @filter = params[:filter_type].blank? ? nil : params[:filter_type] | 10 | @filter = params[:filter_type].blank? ? nil : params[:filter_type] |
8 | begin | 11 | begin |
9 | @memberships = @filter.nil? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter)) | 12 | @memberships = @filter.nil? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter)) |
test/functional/memberships_controller_test.rb
@@ -318,4 +318,20 @@ class MembershipsControllerTest < ActionController::TestCase | @@ -318,4 +318,20 @@ class MembershipsControllerTest < ActionController::TestCase | ||
318 | assert_not_includes assigns(:roles), role2 | 318 | assert_not_includes assigns(:roles), role2 |
319 | end | 319 | end |
320 | 320 | ||
321 | + should 'only show roles related to profiles' do | ||
322 | + c1 = fast_create(Community, :name => 'First community') | ||
323 | + role1 = Role.create!(:name => 'profile_role', :permissions => ['edit_profile'], :environment => c1.environment) | ||
324 | + role2 = Role.create!(:name => 'environment_role', :permissions => ['edit_profile'], :environment => c1.environment) | ||
325 | + | ||
326 | + person = Person['testuser'] | ||
327 | + c1.add_member(person) | ||
328 | + person.add_role(role2, c1.environment) | ||
329 | + person.add_role(role1, c1) | ||
330 | + | ||
331 | + login_as('testuser') | ||
332 | + get :index, :profile => 'testuser' | ||
333 | + | ||
334 | + assert_includes assigns(:roles), role1 | ||
335 | + assert_not_includes assigns(:roles), role2 | ||
336 | + end | ||
321 | end | 337 | end |