diff --git a/app/models/add_member.rb b/app/models/add_member.rb index 7ae60e6..45fa638 100644 --- a/app/models/add_member.rb +++ b/app/models/add_member.rb @@ -11,7 +11,9 @@ class AddMember < Task settings_items :roles def perform - self.roles ||= [Profile::Roles.member(organization.environment.id).id] + if !self.roles or (self.roles.uniq.compact.length == 1 and self.roles.uniq.compact.first.to_i.zero?) + self.roles = [Profile::Roles.member(organization.environment.id).id] + end target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) end diff --git a/test/unit/add_member_test.rb b/test/unit/add_member_test.rb index 6880a98..af6170e 100644 --- a/test/unit/add_member_test.rb +++ b/test/unit/add_member_test.rb @@ -22,6 +22,14 @@ class AddMemberTest < ActiveSupport::TestCase assert_equal [person], community.members end + should 'make member role the default role' do + TaskMailer.stubs(:deliver_target_notification) + task = AddMember.create!(:roles => ["0", "0", nil], :person => person, :organization => community) + task.finish + + assert_equal [person], community.members + end + should 'require requestor' do task = AddMember.new task.valid? -- libgit2 0.21.2