Commit 53875407d41f71cc3c4ca19541d231d98098e75d
1 parent
67e58158
Exists in
master
and in
29 other branches
Makes member role the default if none selected
When explicity _accepting_ a new member in a community, but still no role is selected, makes the default role be 'member'. (ActionItem2281)
Showing
2 changed files
with
11 additions
and
1 deletions
Show diff stats
app/models/add_member.rb
@@ -11,7 +11,9 @@ class AddMember < Task | @@ -11,7 +11,9 @@ class AddMember < Task | ||
11 | settings_items :roles | 11 | settings_items :roles |
12 | 12 | ||
13 | def perform | 13 | def perform |
14 | - self.roles ||= [Profile::Roles.member(organization.environment.id).id] | 14 | + if !self.roles or (self.roles.uniq.compact.length == 1 and self.roles.uniq.compact.first.to_i.zero?) |
15 | + self.roles = [Profile::Roles.member(organization.environment.id).id] | ||
16 | + end | ||
15 | target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) | 17 | target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) |
16 | end | 18 | end |
17 | 19 |
test/unit/add_member_test.rb
@@ -22,6 +22,14 @@ class AddMemberTest < ActiveSupport::TestCase | @@ -22,6 +22,14 @@ class AddMemberTest < ActiveSupport::TestCase | ||
22 | assert_equal [person], community.members | 22 | assert_equal [person], community.members |
23 | end | 23 | end |
24 | 24 | ||
25 | + should 'make member role the default role' do | ||
26 | + TaskMailer.stubs(:deliver_target_notification) | ||
27 | + task = AddMember.create!(:roles => ["0", "0", nil], :person => person, :organization => community) | ||
28 | + task.finish | ||
29 | + | ||
30 | + assert_equal [person], community.members | ||
31 | + end | ||
32 | + | ||
25 | should 'require requestor' do | 33 | should 'require requestor' do |
26 | task = AddMember.new | 34 | task = AddMember.new |
27 | task.valid? | 35 | task.valid? |