From f9476409c8d8627b91d58dc036285d0c1fee8f7f Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 8 Jul 2016 20:40:44 +0200 Subject: [PATCH 1/2] Send public profiles publicly this will help big profiles, and the informations are public anyway, so no need to encrypt them. fixes #3164 --- app/models/profile.rb | 4 ++++ spec/models/profile_spec.rb | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/models/profile.rb b/app/models/profile.rb index 573dcb6f3..82413ccd2 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -40,6 +40,10 @@ class Profile < ActiveRecord::Base Person.joins(:contacts).where(contacts: {user_id: person.owner_id}) end + def public? + public_details? + end + def diaspora_handle #get the parent diaspora handle, unless we want to access a profile without a person (self.person) ? self.person.diaspora_handle : self[:diaspora_handle] diff --git a/spec/models/profile_spec.rb b/spec/models/profile_spec.rb index 85c630bfe..4d245f7fd 100644 --- a/spec/models/profile_spec.rb +++ b/spec/models/profile_spec.rb @@ -185,6 +185,18 @@ describe Profile, :type => :model do end end + describe "public?" do + it "is public if public_details is true" do + profile = FactoryGirl.build(:profile, public_details: true) + expect(profile.public?).to be_truthy + end + + it "is not public if public_details is false" do + profile = FactoryGirl.build(:profile, public_details: false) + expect(profile.public?).to be_falsey + end + end + describe 'date=' do let(:profile) { FactoryGirl.build(:profile) } From 8942bb98c8df90792471d8865f09524c75136384 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Sun, 23 Jul 2017 02:14:17 +0200 Subject: [PATCH 2/2] Send and receive public flag for profile --- lib/diaspora/federation/entities.rb | 3 ++- lib/diaspora/federation/receive.rb | 3 ++- spec/lib/diaspora/federation/entities_spec.rb | 1 + spec/lib/diaspora/federation/receive_spec.rb | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/diaspora/federation/entities.rb b/lib/diaspora/federation/entities.rb index 2e18a57b6..48b07c43b 100644 --- a/lib/diaspora/federation/entities.rb +++ b/lib/diaspora/federation/entities.rb @@ -160,7 +160,8 @@ module Diaspora location: profile.location, searchable: profile.searchable, nsfw: profile.nsfw, - tag_string: profile.tag_string + tag_string: profile.tag_string, + public: profile.public_details ) end diff --git a/lib/diaspora/federation/receive.rb b/lib/diaspora/federation/receive.rb index 3a33a0d74..65e3dfa99 100644 --- a/lib/diaspora/federation/receive.rb +++ b/lib/diaspora/federation/receive.rb @@ -122,7 +122,8 @@ module Diaspora location: entity.location, searchable: entity.searchable, nsfw: entity.nsfw, - tag_string: entity.tag_string + tag_string: entity.tag_string, + public_details: entity.public ) end end diff --git a/spec/lib/diaspora/federation/entities_spec.rb b/spec/lib/diaspora/federation/entities_spec.rb index 3a1e680f4..fa3ace047 100644 --- a/spec/lib/diaspora/federation/entities_spec.rb +++ b/spec/lib/diaspora/federation/entities_spec.rb @@ -188,6 +188,7 @@ describe Diaspora::Federation::Entities do expect(federation_entity.searchable).to eq(diaspora_entity.searchable) expect(federation_entity.nsfw).to eq(diaspora_entity.nsfw) expect(federation_entity.tag_string.split(" ")).to match_array(diaspora_entity.tag_string.split(" ")) + expect(federation_entity.public).to eq(diaspora_entity.public_details) end it "builds a reshare" do diff --git a/spec/lib/diaspora/federation/receive_spec.rb b/spec/lib/diaspora/federation/receive_spec.rb index fd943b06d..720e3c574 100644 --- a/spec/lib/diaspora/federation/receive_spec.rb +++ b/spec/lib/diaspora/federation/receive_spec.rb @@ -415,6 +415,7 @@ describe Diaspora::Federation::Receive do expect(profile.searchable).to eq(profile_entity.searchable) expect(profile.nsfw).to eq(profile_entity.nsfw) expect(profile.tag_string.split(" ")).to match_array(profile_entity.tag_string.split(" ")) + expect(profile.public_details).to eq(profile_entity.public) end end