Commit faeab49783ef9cbb54664def6b922b780051175c
Committed by
Antonio Terceiro
1 parent
7c655652
Exists in
master
and in
22 other branches
ActionItem1027: fix remove member of community
Showing
2 changed files
with
28 additions
and
6 deletions
Show diff stats
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 | ... | ... |