Commit faeab49783ef9cbb54664def6b922b780051175c

Authored by Joenio Costa
Committed by Antonio Terceiro
1 parent 7c655652

ActionItem1027: fix remove member of community

app/controllers/my_profile/profile_members_controller.rb
... ... @@ -47,12 +47,16 @@ class ProfileMembersController < MyProfileController
47 47 end
48 48  
49 49 def unassociate
50   - @association = RoleAssignment.find(params[:id])
51   - if @association.destroy
52   - flash[:notice] = 'Member succefully unassociated'
53   - else
54   - flash[:notice] = 'Failed to unassociate member'
  50 + member = Person.find(params[:id])
  51 + associations = member.find_roles(profile)
  52 + RoleAssignment.transaction do
  53 + if associations.map(&:destroy)
  54 + flash[:notice] = 'Member succefully unassociated'
  55 + else
  56 + flash[:notice] = 'Failed to unassociate member'
  57 + end
55 58 end
56   - redirect_to :aciton => 'index'
  59 + redirect_to :action => 'index'
57 60 end
  61 +
58 62 end
... ...
test/functional/profile_members_controller_test.rb
... ... @@ -79,4 +79,22 @@ class ProfileMembersControllerTest < Test::Unit::TestCase
79 79 assert_includes roles, role2
80 80 assert_not_includes roles, role1
81 81 end
  82 +
  83 + should 'unassociate community member' do
  84 + com = Community.create!(:identifier => 'test_community', :name => 'test community')
  85 + admin = create_user_with_permission('admin_user', 'manage_memberships', com)
  86 + member = create_user('test_member').person
  87 + com.add_member(member)
  88 + assert_includes com.members, member
  89 +
  90 + login_as :admin_user
  91 + get :unassociate, :profile => com.identifier, :id => member
  92 +
  93 + assert_response :redirect
  94 + assert_redirected_to :action => 'index'
  95 + member.reload
  96 + com.reload
  97 + assert_not_includes com.members, member
  98 + end
  99 +
82 100 end
... ...