Commit 6978e36d3d28e5e9a036027ad5f7baf8689db75b
Exists in
master
and in
28 other branches
Merge commit 'refs/merge-requests/135' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/135
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? | ... | ... |