From 86f07a0e248ab543baa2f83f14894056050d2924 Mon Sep 17 00:00:00 2001 From: JoenioCosta Date: Wed, 28 May 2008 22:19:59 +0000 Subject: [PATCH] ActionItem165: just add members if profile is opened, if closed create taks to admin --- app/controllers/my_profile/memberships_controller.rb | 8 +------- app/models/add_member.rb | 6 +++++- app/models/profile.rb | 6 +++++- test/unit/add_member_test.rb | 5 +++++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/controllers/my_profile/memberships_controller.rb b/app/controllers/my_profile/memberships_controller.rb index 7cdbdfb..7719736 100644 --- a/app/controllers/my_profile/memberships_controller.rb +++ b/app/controllers/my_profile/memberships_controller.rb @@ -9,13 +9,7 @@ class MembershipsController < MyProfileController def join @to_join = Profile.find(params[:id]) if request.post? && params[:confirmation] - if @to_join.closed? - # FIXME closed field added to organization, dont to profile. its correct? - AddMember.create!(:person => profile, :community => @to_join) - else - @to_join.add_member(profile) - end - + @to_join.add_member(profile) redirect_to @to_join.url end end diff --git a/app/models/add_member.rb b/app/models/add_member.rb index 20ea17b..9ee5678 100644 --- a/app/models/add_member.rb +++ b/app/models/add_member.rb @@ -7,9 +7,13 @@ class AddMember < Task alias :community :target alias :community= :target= + alias :organization :target + alias :organization= :target= + alias :enterprise :target + alias :enterprise= :target= def perform - target.add_member(requestor) + target.affiliate(requestor, Profile::Roles.member) end # FIXME should send email to community admin? diff --git a/app/models/profile.rb b/app/models/profile.rb index 6fcc62b..cc67b66 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -257,7 +257,11 @@ class Profile < ActiveRecord::Base # Adds a person as member of this Profile. def add_member(person) if self.has_members? - self.affiliate(person, Profile::Roles.member) + if self.closed? + AddMember.create!(:person => person, :organization => self) + else + self.affiliate(person, Profile::Roles.member) + end else raise _("%s can't has members") % self.class.name end diff --git a/test/unit/add_member_test.rb b/test/unit/add_member_test.rb index cce4d47..1a4c77b 100644 --- a/test/unit/add_member_test.rb +++ b/test/unit/add_member_test.rb @@ -61,4 +61,9 @@ class AddMemberTest < ActiveSupport::TestCase assert_equal 'testuser1 wants to be a member', task.description end + should 'has community alias to target' do + t = AddMember.new + assert_same t.target, t.community + end + end -- libgit2 0.21.2