diff --git a/app/models/add_member.rb b/app/models/add_member.rb index 4bb7635..518817e 100644 --- a/app/models/add_member.rb +++ b/app/models/add_member.rb @@ -12,7 +12,7 @@ class AddMember < Task def perform self.roles ||= [Profile::Roles.member(organization.environment.id).id] - target.affiliate(requestor, self.roles.map{|i| Role.find(i)}) + target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) end def description diff --git a/test/unit/add_member_test.rb b/test/unit/add_member_test.rb index c676345..6e5f482 100644 --- a/test/unit/add_member_test.rb +++ b/test/unit/add_member_test.rb @@ -95,4 +95,17 @@ class AddMemberTest < ActiveSupport::TestCase end end + should 'ignore roles with id zero' do + p = create_user('testuser1').person + c = Community.create!(:name => 'community_test') + + role = Profile::Roles.member(c.environment.id) + TaskMailer.stubs(:deliver_target_notification) + task = AddMember.create!(:roles => ["0", role.id, nil], :person => p, :organization => c) + task.finish + + current_roles = p.find_roles(c).map(&:role) + assert_includes current_roles, role + end + end -- libgit2 0.21.2