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 | 11 | settings_items :roles |
12 | 12 | |
13 | 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 | 17 | target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) |
16 | 18 | end |
17 | 19 | ... | ... |
test/unit/add_member_test.rb
... | ... | @@ -22,6 +22,14 @@ class AddMemberTest < ActiveSupport::TestCase |
22 | 22 | assert_equal [person], community.members |
23 | 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 | 33 | should 'require requestor' do |
26 | 34 | task = AddMember.new |
27 | 35 | task.valid? | ... | ... |