Commit 86f07a0e248ab543baa2f83f14894056050d2924

Authored by JoenioCosta
1 parent b8a7be04

ActionItem165: just add members if profile is opened, if closed create taks to admin

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1843 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/my_profile/memberships_controller.rb
... ... @@ -9,13 +9,7 @@ class MembershipsController < MyProfileController
9 9 def join
10 10 @to_join = Profile.find(params[:id])
11 11 if request.post? && params[:confirmation]
12   - if @to_join.closed?
13   - # FIXME closed field added to organization, dont to profile. its correct?
14   - AddMember.create!(:person => profile, :community => @to_join)
15   - else
16   - @to_join.add_member(profile)
17   - end
18   -
  12 + @to_join.add_member(profile)
19 13 redirect_to @to_join.url
20 14 end
21 15 end
... ...
app/models/add_member.rb
... ... @@ -7,9 +7,13 @@ class AddMember < Task
7 7  
8 8 alias :community :target
9 9 alias :community= :target=
  10 + alias :organization :target
  11 + alias :organization= :target=
  12 + alias :enterprise :target
  13 + alias :enterprise= :target=
10 14  
11 15 def perform
12   - target.add_member(requestor)
  16 + target.affiliate(requestor, Profile::Roles.member)
13 17 end
14 18  
15 19 # FIXME should send email to community admin?
... ...
app/models/profile.rb
... ... @@ -257,7 +257,11 @@ class Profile < ActiveRecord::Base
257 257 # Adds a person as member of this Profile.
258 258 def add_member(person)
259 259 if self.has_members?
260   - self.affiliate(person, Profile::Roles.member)
  260 + if self.closed?
  261 + AddMember.create!(:person => person, :organization => self)
  262 + else
  263 + self.affiliate(person, Profile::Roles.member)
  264 + end
261 265 else
262 266 raise _("%s can't has members") % self.class.name
263 267 end
... ...
test/unit/add_member_test.rb
... ... @@ -61,4 +61,9 @@ class AddMemberTest < ActiveSupport::TestCase
61 61 assert_equal 'testuser1 wants to be a member', task.description
62 62 end
63 63  
  64 + should 'has community alias to target' do
  65 + t = AddMember.new
  66 + assert_same t.target, t.community
  67 + end
  68 +
64 69 end
... ...