Commit 53875407d41f71cc3c4ca19541d231d98098e75d
1 parent
67e58158
Exists in
master
and in
28 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? | ... | ... |