[Git][noosfero/noosfero][master] 2 commits: Fixes secret community invitations
Rodrigo Souto
gitlab at mg.gitlab.com
Mon Jan 23 15:36:38 BRST 2017
Rodrigo Souto pushed to branch master at Noosfero / noosfero
Commits:
add00d6a by Gabriel Silva at 2017-01-23T16:42:18+00:00
Fixes secret community invitations
Signed-off-by: Gabriel Silva <gabriel93.silva at gmail.com>
- - - - -
79db59aa by Rodrigo Souto at 2017-01-23T17:36:30+00:00
Merge branch 'secret_members' into 'master'
Fixes secret community member invitations
Closes #242
See merge request !1097
- - - - -
4 changed files:
- app/models/invite_member.rb
- app/models/profile.rb
- test/unit/invite_member_test.rb
- test/unit/profile_test.rb
Changes:
=====================================
app/models/invite_member.rb
=====================================
--- a/app/models/invite_member.rb
+++ b/app/models/invite_member.rb
@@ -13,7 +13,7 @@ class InviteMember < Invitation
end
def perform
- community.add_member(friend)
+ community.add_member(friend, true)
end
def title
=====================================
app/models/profile.rb
=====================================
--- a/app/models/profile.rb
+++ b/app/models/profile.rb
@@ -821,8 +821,8 @@ private :generate_url, :url_options
end
# Adds a person as member of this Profile.
- def add_member(person, attributes={})
- if self.has_members? && !self.secret
+ def add_member(person, invited=false, **attributes)
+ if self.has_members? && (!self.secret || invited)
if self.closed? && members.count > 0
AddMember.create!(:person => person, :organization => self) unless self.already_request_membership?(person)
else
=====================================
test/unit/invite_member_test.rb
=====================================
--- a/test/unit/invite_member_test.rb
+++ b/test/unit/invite_member_test.rb
@@ -22,6 +22,22 @@ class InviteMemberTest < ActiveSupport::TestCase
ok('friend is member of community') { community.members.include?(friend) }
end
+ should 'actually add as member when confirmed if the community is secret' do
+ person = fast_create(Person)
+ friend = fast_create(Person)
+ friend.stubs(:user).returns(User.new(:email => 'garotos at podres.punk.oi'))
+ person.stubs(:user).returns(User.new(:email => 'suburbio-operario at podres.podres'))
+ community = fast_create(Community, secret: true)
+
+ assert_equal [], community.members
+
+ task = InviteMember.create!(:person => person, :friend => friend, :community_id => community.id)
+ task.finish
+ community.reload
+
+ ok('friend is member of secret community') { community.members.include?(friend) }
+ end
+
should 'cancel other invitations for same community when confirmed' do
friend = create_user('friend').person
p1 = create_user('testuser1').person
=====================================
test/unit/profile_test.rb
=====================================
--- a/test/unit/profile_test.rb
+++ b/test/unit/profile_test.rb
@@ -2274,6 +2274,13 @@ class ProfileTest < ActiveSupport::TestCase
end
end
+ should 'allow to add members in secret profiles if they are invited' do
+ community = fast_create(Community, secret: true)
+ person = create_user('mytestuser').person
+ community.add_member(person, true)
+ assert_includes community.members, person
+ end
+
should 'have kinds' do
k1 = fast_create(Kind, :name => 'Captain', :type => 'Profile', :environment_id => Environment.default.id)
k2 = fast_create(Kind, :name => 'Number One', :type => 'Profile', :environment_id => Environment.default.id)
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/1124e5746b97908da3ba1fd5f3b2026a917cb6b8...79db59aa8c5f0c9cde3993e11e5298639fa1c6b8
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20170123/878f3947/attachment-0001.html>
More information about the Noosfero-dev
mailing list